我正在尝试创建一个初学者级程序,以更好地理解python编程。一个简单的while true循环,它向X添加一个值1,并根据x是否小于或大于10来打印“帮助”或“做某事”。然后在x大于20时中断。我还尝试添加一个键盘中断,以在不太复杂的情况下中断循环。任何提示都可以帮助我
Traceback (most recent call last):
File "so.py", line 23, in <module>
help()
File "so.py", line 11, in help
x += 1
UnboundLocalError: local variable 'x' referenced before assignment
代码:
import time
x = 1
try:
def help():
print("Help.")
time.sleep(2)
x += 1
def doStuff():
print("Doing Stuff")
time.sleep(2)
x += 1
while True:
if x < 10:
help()
elif x < 20 and x > 10:
doStuff()
else:
break
except KeyboardInterrupt:
exit()
答案 0 :(得分:2)
问题恰恰是错误消息所说的……一旦您知道如何解释这些单词。
def help():
print("Help.")
time.sleep(2)
x += 1
您正在尝试更改变量x
。这要求x
必须已经有一个值。但是,除非声明要在函数外引用一个变量,否则不能更改 global 变量。因此,Python期望您有一个 local 变量x
-您尚未创建。只需根据需要声明变量:
def help():
global x
print("Help.")
time.sleep(2)
x += 1
现在,您的程序将打印Help.
10次并退出。