import sys
while True:
print('Welcome to the world of Daareven.')
print('1 - New game, 2 - Exit')
#PROBLEM STARTS HERE
try:
answer = int(input())
except ValueError:
answer = input()
#PROBLEM ENDS HERE
if type(answer) is str or answer > 2:
print('Wrong input, please try again')
continue
elif answer == 1:
print('Great, let\'s begin')
break
elif answer == 2:
print('See you soon!')
sys.exit()
嘿,我目前正在学习Python,我决定制作简单的游戏项目,仅仅是为了娱乐/学习,这就是我的问题:当我输入字符串作为答案时,为什么它会迫使我做出来在我的程序显示之前我应该再试一次?
答案 0 :(得分:4)
问题在于:
try:
answer = int(input())
except ValueError:
answer = input()
您要求输入两次。你可以删除第二个输入:
try:
answer = int(input())
except ValueError:
answer = 3 # Invalid input
if answer > 2:
答案 1 :(得分:1)
从它的外观来看,因为你正在调用input()
(那是一个),然后你将其强制转换为int
,引发异常并调用{{1}再次。