Python - if语句做了两次

时间:2018-01-28 12:13:06

标签: python python-3.x

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,我决定制作简单的游戏项目,仅仅是为了娱乐/学习,这就是我的问题:当我输入字符串作为答案时,为什么它会迫使我做出来在我的程序显示之前我应该​​再试一次?

2 个答案:

答案 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}再次。