我已经在我编写的数字猜谜游戏中运行了这个代码,如果玩家遵循指示,它运行得非常好,但我们都知道用户永远不会这样做。如果用户只输入一个空格或任何不是单词提示的字符串,那么当它尝试将guess的值转换为整数时,它会崩溃说int()的无效文字。有什么方法可以解决这个问题,还是我只能和崩溃一起生活?
while repeat==1:
repeat=0
level1number=str(level1number)
guess=input("What is your guess? ")
guess=guess.lower()
if guess==level1number:
print("Well done, You have guessed my number!")
elif guess=="hint":
print("Hints are not available until level 3")
repeat=1
elif guess!=level1number:
print("Sorry that is not my number, you have lost a life. :(")
lives=lives-1
repeat=1
if lives<=0:
print("You have lost all your lives, so this means I win")
print("The program will now end")
exit()
input("")
level1number=int(level1number)
guess=int(guess)
if guess<level1number:
print("The target number is higher")
else:
print("The target number is lower")
答案 0 :(得分:2)
使用某些内容
if guess.isdigit() ...
(当且仅当给定字符串的所有字符都是数字时,方法isdigit()
才返回true,即0到9)
答案 1 :(得分:0)
while repeat==1:
repeat=0
level1number=str(level1number)
guess=input("What is your guess? ")
guess=guess.lower()
if guess==level1number:
print("Well done, You have guessed my number!")
elif guess=="hint":
print("Hints are not available until level 3")
repeat=1
elif guess!=level1number:
print("Sorry that is not my number, you have lost a life. :(")
lives=lives-1
repeat=1
if lives<=0:
print("You have lost all your lives, so this means I win")
print("The program will now end")
exit()
input("")
level1number=int(level1number)
try:
guess=int(guess)
if guess<level1number:
print("The target number is higher")
else:
print("The target number is lower")
except:
print("Try again. Not a number")
使用try/except
块可以解决您的问题。看看
编辑:在问题中。你提到当输入数字以外的东西时你会收到错误。实际上,当你的代码试图将输入字符串转换为数字时,由于输入不是数字而导致输入字符串转换为数字时,会抛出exception
,就像{guess = int(guess)
{1}}。所以,我的代码所做的是,它捕获异常,并且不允许程序以异常终止。
试试一次。我知道你是初学者,但在编写越来越复杂的代码和应用程序之前,最好尽快了解space
。
希望它有所帮助!!