проблемма с классом
в данный момент изучаю ООП и пытаюсь выполнить задачу, но при запуске кода:
import collections
class laboras:
def __init__(self,pradine,abecele,nepasikartojantys,pasikartojantys):
self.pradine = pradine
self.abecele = abecele
self.nepasikartojantys = nepasikartojantys
self.pasikartojantys = pasikartojantys
#pradine
pradine = input('Iveskite bent 10 tarpais atskirtu zodziu seka: ')
#abecele
s = sorted(pradine.split(), key=str.lower)
abecele = ' '.join(map(str,s))
#nepasikartojantys
nepasikartoja = list(dict.fromkeys(abecele.split()))
nepasikartojantys = ' '.join(map(str,nepasikartoja))
#pasikartojantys
pradine1 = pradine.split()
pasikartojantys = collections.Counter(pradine)
def spausdinimas(self):
print(self.pradine)
print(self.abecele)
print(self.nepasikartojantys)
print(self.pasikartojantys)
rezultatas = laboras(pradine, abecele, nepasikartojantys, pasikartojantys)
rezultatas.spausdinimas()
получаю ошибку: line 27, in rezultatas = laboras(pradine, abecele, nepasikartojantys, pasikartojantys) NameError: name 'pradine' is not defined
Ответы (1 шт):
Автор решения: void
→ Ссылка
Если учите пока что, то у вас пока недопонимание общее, что такое класс и прочее. Запомните: написание строчек кода в произвольном порядке структур и с произвольными отступами меняют смысл логики (если упрощенно говорить), а то и ведут к нежелательному поведению. Сравните код, свой и тот, что ниже. Попытайтесь понять, в чем принципиальная разница.
import collections
class Laboras:
def __init__(self, pradine, abecele, nepasikartojantys, pasikartojantys):
self.pradine = pradine
self.abecele = abecele
self.nepasikartojantys = nepasikartojantys
self.pasikartojantys = pasikartojantys
def spausdinimas(self):
print(self.pradine)
print(self.abecele)
print(self.nepasikartojantys)
print(self.pasikartojantys)
# pradine
pradine = input('Iveskite bent 10 tarpais atskirtu zodziu seka: ')
# abecele
s = sorted(pradine.split(), key=str.lower)
abecele = ' '.join(map(str, s))
# nepasikartojantys
nepasikartoja = list(dict.fromkeys(abecele.split()))
nepasikartojantys = ' '.join(map(str, nepasikartoja))
# pasikartojantys
pradine1 = pradine.split()
pasikartojantys = collections.Counter(pradine)
rezultatas = Laboras(pradine, abecele, nepasikartojantys, pasikartojantys)
rezultatas.spausdinimas()
P.S.переменную pradine1 оставил, но она у вас даже и не используется нигде.