我为一个简单的数学写了下面的代码。据我所知,它应该工作得很好。但是字符串格式有错误。显示“NameError:name'guess'未定义”消息的shell。但是变量已经在那里定义了。你知道吗
import random
import re
#select a random number
myNumber = random.randint(1, 20)
#loop for the game
while True:
try:
guess = int(input("Guess a number and put here : "))
except ValueError:
print("not a number {}".format(guess))
else:
if not guess in range(1, 20):
print('Put only number between 1 - 20')
continue
elif guess == myNumber:
print("that's right")
break
else:
print("Bummer!")
只有在
try
子句中没有出现错误时,才会定义guess
。因此,当一个错误被抛出时,guess
将永远不会被定义,Python将抛出一个NameError
。需要在try/except
块之前给guess
一个默认值。或者,正如@John Gordon所提到的,您可以在for循环之外获取用户输入,并且只尝试在try
子句中重新定义为整数。你知道吗相关问题 更多 >
编程相关推荐