在while循环中进行有效性检查后,获取最后一个输入的双倍输出

问题描述 投票:0回答:1

我正在while循环中学习输入验证。如果我输入1、2、3,x,-1作为输入,则将输出1、2、3、3。有人可以解释为什么两次输出3。我的try语句不正确还是在错误的位置?

def input_validation_while_loop():

    list = []

    guess_num = int(input("Enter a number between 1 and 100 or enter -1 to stop."))

    # sentinel_value = -1
    while guess_num != -1:
        try:
            if 1 <= guess_num <= 100:
                list.append(guess_num)
            guess_num = int(input("Enter a number between 1 and 100 or enter -1 to stop."))
        except ValueError:
            print("That was not a number. Try again.")

    else:
        for x in list:
            print(x)
python-3.x validation pycharm
1个回答
0
投票
def input_validation_while_loop():

    list = []


    # sentinel_value = -1
    while True:
        try:
            guess_num = int(input("Enter a number between 1 and 100 or enter -1 to stop."))
            if 1 <= guess_num <= 100:
                list.append(guess_num)
            elif guess_num == -1:
                break
        except ValueError:
            print("That was not a number. Try again.")

    for x in list:
        print(x)
input_validation_while_loop()
© www.soinside.com 2019 - 2024. All rights reserved.