对此有新意见,请耐心等待。我正在尝试运行一个循环,要求用户输入一个介于1和100之间的数字。我想把它转到哪里,如果他们输入100之外的数字,它再次询问。我能够这样做,但我无法弄清楚我是否正在使用正确的循环。此外,每当我进入1和100之间时,循环继续。
以下代码:
user_input = int(input("Enter a number between 1 and 100: "))
if user_input >= 1 and user_input <= 100:
print("NICE!")
else:
while user_input > 100:
try_again = int(input("try again "))
if try_again >= 1 and try_again <= 100:
print("There you go!")
答案 0 :(得分:2)
我认为最明智的方法是从一个循环中开始,当你最终得到正确的答案时,你会突破这个循环。一定要处理一个糟糕的输入,比如&#34; fubar&#34;这不是一个整数
while True:
try:
user_input = int(input("Enter a number between 1 and 100: "))
if user_input >= 1 and user_input <= 100:
print("NICE!")
break
print("Not between 1 and 100, try again")
except ValueError:
print("Not a number, try again")
在python 3中,您可以使用range
进行边界检查。如果你这样做
if user_input in range(1, 101)
range
将计算结果,而不会实际生成所有数字。
答案 1 :(得分:0)
当您的代码运行时,它将继续请求输入,即使给定的输入小于100.解决此问题的方法之一是:
try_again = 1000
user_input = int(input("Enter a number between 1 and 100: "))
if user_input >= 1 and user_input <= 100:
print("NICE!")
elif user_input > 100:
while try_again > 100:
try_again = int(input("try again "))
if try_again >= 1 and try_again <= 100:
print("There you go!")
此代码首先测试用户的输入是否大于100,然后运行一个基本值大于100的while语句。当用户输入另一个值时,如果超过100,则继续,否则它会不
答案 2 :(得分:0)
下面是一个程序示例,它可以为您提供所需的输出:
attempts = 0
while True:
user_input = int(input("Enter a number between 1 and 100: "))
if user_input > 100 or user_input < 1:
print('Please try again')
attempts += 1
continue
elif attempts >= 1 and user_input <= 100 and user_input >= 1:
print('There you go!')
break
else:
print('Nice!')
break
首先将您的用户提示放在循环中,以便在第一次输入1到100之间的数字失败时,可以询问用户相同的提示。如果用户输入大于100或小于1,我们将告诉用户再次尝试,我们将添加1尝试,我们将添加一个continue语句,在while循环的顶部再次启动代码。接下来我们添加一个elif语句。如果他们已尝试提示并失败(尝试&gt; = 1)并且如果新输入小于或等于100且用户输入也大于或等于1,则用户将获得&#39;你去的地方&#39;您分配给他们的消息。然后我们将使用break语句中断循环,以避免无限循环。最后我们添加一个else语句。如果用户在第一次尝试时满足先前条件,我们将打印出“好消息”。并简单地摆脱循环。