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