Skip to main content
 首页 » 编程设计

python之赋值前引用的局部变量 "age"

2025年05月04日13xing901022

<分区>

我最近开始学习python。我正在解决一个问题。

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. 

你能指导我做错什么吗?。谢谢