python UnboundLocalError局部变量';机会';分配前参考
下面的代码在执行时显示了错误,在执行Looper()之前,我不是在第二行中执行了辅助吗?但是,当我在Looper()的第一行中添加chances=5时,它就起作用了python UnboundLocalError局部变量';机会';分配前参考,python,Python,下面的代码在执行时显示了错误,在执行Looper()之前,我不是在第二行中执行了辅助吗?但是,当我在Looper()的第一行中添加chances=5时,它就起作用了 import random chances = 5 def Looper(): if chances != 0: if real_answer == user_answer: print("Gotcha") exit() elif real_a
import random
chances = 5
def Looper():
if chances != 0:
if real_answer == user_answer:
print("Gotcha")
exit()
elif real_answer < user_answer:
chances -= 1
print("Too large")
else:
chances -= 1
print("Too small")
real_answer = random.randint(1, 1000)
user_answer = int(input("This is a guessing game, please guess a number from 1 to 1000. You have 5 chances"))
Looper()
随机导入
机会=5
def Looper():
如果有机会0:
如果真实答案==用户答案:
打印(“抓住了”)
退出()
elif真实答案<用户答案:
机会-=1
打印(“太大”)
其他:
机会-=1
打印(“太小”)
real_answer=random.randint(11000)
user_answer=int(输入(“这是一个猜谜游戏,请猜一个1到1000之间的数字。你有5次机会”))
活套()
除了希望机会
成为Looper
的一个参数(例如def Looper(机会=5):
)之外,还可以在函数内部使用全局机会
获取外部变量的引用
更好:
def looper(chances=5):
if chances != 0:
...
也有可能,但是是全局状态
CHANCES = 5
def looper():
global CHANCES
if CHANCES != 0:
...
完整故事:
import random
def looper(real_answer, chances=5):
for _ in range(chances):
user_answer = int(input("This is a guessing game, please guess a number from 1 to 1000. You have %i chances" % (chances, )))
if real_answer == user_answer:
return True
elif real_answer < user_answer:
print("Too large")
else:
print("Too small")
if __name__ == '__main__':
real_answer = random.randint(1, 1000)
if looper(real_answer):
print("Gotcha")
随机导入
def活套(真实答案,机会=5):
对于范围内的(机会):
user_answer=int(输入(“这是一个猜谜游戏,请猜一个从1到1000的数字。您有%i次机会”%(机会,))
如果真实答案==用户答案:
返回真值
elif真实答案<用户答案:
打印(“太大”)
其他:
打印(“太小”)
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
real_answer=random.randint(11000)
如果活套(真实答案):
打印(“抓住了”)
有什么例子吗?我是个新手:)什么是非局部概率?函数中定义的变量是该函数的局部变量。从定义它的点到函数结束都可以访问。虽然函数内部和外部变量的名称相同,但它们是不同范围的独立副本。。