Python 为什么在添加while循环和if-then-else-if语句后会出现UnboundLocalError?
这是怎么回事? 这是一个基本的老虎机游戏,但是当我尝试添加硬币和硬币生成的条件时,我得到了Python 为什么在添加while循环和if-then-else-if语句后会出现UnboundLocalError?,python,Python,这是怎么回事? 这是一个基本的老虎机游戏,但是当我尝试添加硬币和硬币生成的条件时,我得到了UnboundLocalError。 当我没有while循环和if-then-else-if语句时,会生成随机数 import random def main(): coins = 50 x = 0 y = 0 z = 0 while coins >= 0 or giveUp != yes: coins = (coins - 3)
UnboundLocalError
。
当我没有while循环和if-then-else-if语句时,会生成随机数
import random
def main():
coins = 50
x = 0
y = 0
z = 0
while coins >= 0 or giveUp != yes:
coins = (coins - 3)
x = random.randrange(1, 7)
y = random.randrange(1, 7)
z = random.randrange(1, 7)
x = x
y = y
z = z
print (x + y + Z)
if (x == y) or (x == z):
if (x == 1):
coins = (coins + 3)
print ("you win 3 coins")
elif x == 2:
coins = (coins +3)
print = ("you win 3 coins")
elif x == 3:
coins = (coins + 3)
print = ("you win 3 coins")
elif x == 4:
coins = (coins +3)
print = ("you win 3 coins")
elif x == 5:
coins = (coins + 3)
print = ("you win 3 coins")
elif x == 6:
coins = (coins + 3)
print = ("you win 3 coins")
elif x == 7:
coins = (coins + 3)
print = ("you win 3 coins")
giveUp = (input("do you give up?"))
main()
此分配(也称为“绑定”)
表示放弃是本地的
while
循环在您分配(即绑定)该局部变量之前尝试测试该局部变量
您可以通过在while
循环之前设置giveUp=“No”
来解决此问题
另外,yes
可能应该是“yes”
在这里,循环条件取决于名为giveUp
的变量,但您正试图在循环中定义该变量。您必须在循环之前先定义它。最好的解决方案是在while
循环之前定义giveUp=“No”
。另外,input()
返回字符串,因此它必须是
giveUp="No"
while coins >= 0 or giveUp != "yes":
#codes
另一个提示是,您使用的是或操作符,因此如果用户键入no
,即使没有任何硬币,用户仍然可以玩。您应该将其更改为和
while coins >= 0 and giveUp != "yes":
现在如果用户想玩,需要硬币和“是”请更正您的代码。。。
print(x+y+Z)
nameZ
在您的代码中位于上方。
这里肯定有错误。。和print=
nameprint
不应跟在字符=
试试这个
>>> import random
>>> def main():
coins = 50
x = 0
y = 0
z = 0
while coins >= 0 or giveUp != yes:
coins = (coins - 3)
x = random.randrange(1, 7)
y = random.randrange(1, 7)
z = random.randrange(1, 7)
x = x
y = y
z = z
print (x + y + z)
if (x == y) or (x == z):
if (x == 1):
coins = (coins + 3)
print ("you win 3 coins")
elif x == 2:
coins = (coins +3)
print ("you win 3 coins")
elif x == 3:
coins = (coins + 3)
print ("you win 3 coins")
elif x == 4:
coins = (coins +3)
print ("you win 3 coins")
elif x == 5:
coins = (coins + 3)
print ("you win 3 coins")
elif x == 6:
coins = (coins + 3)
print ("you win 3 coins")
elif x == 7:
coins = (coins + 3)
print ("you win 3 coins")
giveUp = (input("do you give up?"))
>>> main()
you win 3 coins
do you give up?3
12
12
9
7
12
9
14
10
15
you win 3 coins
do you give up?1
9
>>>
x=x,y=y,z=z
的乐趣是什么?你想说什么?你应该说放弃!='是“
在第一个检查条件中,如果-elif
-代码,您能解释一下这个吗?根据显示的值,您将始终得到相同的结果(除了在大多数情况下您犯了错误并覆盖了print
)
while coins >= 0 and giveUp != "yes":
>>> import random
>>> def main():
coins = 50
x = 0
y = 0
z = 0
while coins >= 0 or giveUp != yes:
coins = (coins - 3)
x = random.randrange(1, 7)
y = random.randrange(1, 7)
z = random.randrange(1, 7)
x = x
y = y
z = z
print (x + y + z)
if (x == y) or (x == z):
if (x == 1):
coins = (coins + 3)
print ("you win 3 coins")
elif x == 2:
coins = (coins +3)
print ("you win 3 coins")
elif x == 3:
coins = (coins + 3)
print ("you win 3 coins")
elif x == 4:
coins = (coins +3)
print ("you win 3 coins")
elif x == 5:
coins = (coins + 3)
print ("you win 3 coins")
elif x == 6:
coins = (coins + 3)
print ("you win 3 coins")
elif x == 7:
coins = (coins + 3)
print ("you win 3 coins")
giveUp = (input("do you give up?"))
>>> main()
you win 3 coins
do you give up?3
12
12
9
7
12
9
14
10
15
you win 3 coins
do you give up?1
9
>>>