每次我尝试编写代码时,它都会工作,但当我输入'stop'
时,它会给我一个错误:
ValueError: invalid literal for int() with base 10: 'stop'
def guessingGame():
global randomNum
guessTry = 3
while True:
guess = input('Guess a Number between 1 - 10, You have 3 Tries, or Enter Stop: ')
if int(guess) == randomNum:
print('Correct')
break
if int(guess) < randomNum:
print('Too Low')
guessTry = guessTry - 1
print('You have, ' + str(guessTry) + ' Guesses Left')
if int(guess) > randomNum:
print('Too High')
guessTry = guessTry - 1
print('You have, ' + str(guessTry) + ' Guesses Left')
if guessTry == 0:
print('You have no more tries')
return
if str(guess) == 'stop' or str(guess) == 'Stop':
break
您正在尝试将字符串“stop”转换为整数。该字符串没有有效的整数表示形式,因此会出现该错误。你应该把
作为第一次检查
另一个建议是对输入使用小写,然后检查小写的“stop”。这样你只需检查一次,它就会捕获“停止”、“停止”、“停止”等。。
这里有一个更像pythonic(Python 3)的版本。
传递给
int()
的字符串只应包含数字:一个快速的解决方法是在这里使用exception handling:
您可以使用
guess.lower() == 'stop'
来匹配“stop”的任何大小写组合:相关问题 更多 >
编程相关推荐