Python 输入控制循环

Python input control loop

Python 初学者。练习用户输入控制。 如果使用的不是 1 到 10 之间的整数,则尝试让用户输入循环到开头。尝试了几个小时,尝试使用 Try 和 Except 命令,但无法正确执行。我究竟做错了什么?谢谢。

编辑: 非常感谢大家的帮助,但是问题仍然没有解决(但非常接近!)我正在尝试弄清楚如果输入了一个整数以外的任何内容,如何循环回到开头。 Agent Biscuit(上图)对浮点数给出了很好的答案,但键入的任何单词或字母仍然会产生错误。我试图了解在键入任何随机值(1 到 10 之间的整数除外)时如何循环。 None 以上示例产生了正确的结果。感谢您的帮助

while True:
    print("Enter a number between 1 and 10")
    number = int(input())
    if (number > 0) and (number < 10):
        print("Thank you, the end.")
        break
    else number != (> 0 and < 10):
        print("It has to be a whole number between 1 and 10.")
        print("Please try again:")

我发现了一些问题。

首先,如果输入浮点值,您使用的输入语句只会引发错误,因为开头的 int 要求输入的所有元素都是数字,而 . 不是数字。

第二;你的其他声明。 else 只保留为 else:,之后不带参数。

现在,如何检查数字是否不完整?试试这个:

while True:
    print("Enter a number between 1 and 10")
    number = float(input())
    if (number > 0) and (number < 10) and (round(number)==number):
        print("Thank you, the end.")
        break
    else:
        print("It has to be a whole number between 1 and 10.")
        print("Please try again:")

它接受浮点值,但仅当它等于整数时才接受它,因此 (round(number)==number)

希望这能回答您的问题。

首先,您不能在 else 语句中使用条件。此外,如果其中一个条件可以接受,则需要使用 or 运算符而不是 and
所以,你的代码需要像这样

while True:
    print("Enter a number between 1 and 10")
    number = int(input())
    if (number > 0) and (number < 10):
        print("Thank you, the end.")
        break
    elif number < 0 or number >10:
        print("It has to be a whole number between 1 and 10.")
        print("Please try again:")

感谢 ack(上文)指出有用的 link。通过研究另一个线程,我找到了解决方案。它可能不是完美的代码,但它 100% 有效:

while True:
    try:
        print("Enter a number between 1 and 10")
        number = float(input())
        if (number > 0) and (number < 10) and (round(number)==number):
            print("Thank you, the end.")
            break
        else:
            print("\n")
            print("It has to be a whole number between 1 and 10.")
            print("Please try again:")
            print("\n")
            continue
    except ValueError:
        print("It has to be a whole number between 1 and 10.")
        print("Please try again:")
        print("\n")