【问题标题】:Python input control loopPython输入控制循环
【发布时间】:2021-12-26 11:30:11
【问题描述】:

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

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

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:")

【问题讨论】:

标签: python loops input controls


【解决方案1】:

我发现了一些问题。

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

第二;你的 else 声明。 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)

希望能回答你的问题。

【讨论】:

    【解决方案2】:

    首先,您不能在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:")
    

    【讨论】:

      【解决方案3】:

      感谢 ack(上图)为我指出一个有用的链接。通过研究另一个线程,我找到了解决方案。它可能不是完美的代码,但它可以 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")
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-03-04
        • 1970-01-01
        • 2016-05-03
        • 2014-06-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多