Недавно я начал изучать питон. И я работаю над проблемой.Локальная переменная «возраст», на которую ссылаются перед назначением
class Person:
age = 0
def __init__(self,initial_Age):
if initial_Age<0:
age=0
print("This person is not valid, setting age to 0.")
else:
age = initial_Age
def amIOld(self):
if(age<13):
print("You are young.")
elif(age>=13 and age<18):
print("You are a teenager.")
else:
print("You are old.")
def yearPasses(self):
age = age + 1
T=int(input())
for i in range(0,T):
age=int(input())
p=Person(age)
p.amIOld()
for j in range(0,3):
p.yearPasses();
p.amIOld();
print ("")
Я получаю ошибку отображается ниже:
Traceback (most recent call last):
File "solution.py", line 27, in <module>
p.yearPasses();
File "solution.py", line 19, in yearPasses
age = age + 1
UnboundLocalError: local variable 'age' referenced before assignment
Входной для этого идет как:
4(Number of test cases)
-1
10
16
18
Выход должен быть чем-то вроде этого:
This person is not valid, setting age to 0.
You are young.
You are young.
You are young.
You are a teenager.
You are a teenager.
You are old.
You are old.
You are old.
Можете ли вы, пожалуйста, направить меня на w шляпа, я делаю неправильно ?. Благодаря
Sidenote (я думаю, что это может быть полезно, так как вы учитесь): уделять больше внимания стилю кода, проверьте [стиль руководство] (https://www.python.org/dev/peps/pep-0008/). Например, используйте 'initial_age' вместо' initial_Age', используйте имена методов с именем верблюда ('am_i_old',' year_passed'), не нужно добавлять ';' в конце строки не используйте короткие переменные типа 'T' и' p'. –