[英]Beginner Python - Answering with either a string or a variable in a loop
到目前为止,我的代码:
prompt = "\nEnter 'quit' when you are finished."
prompt += "\nPlease enter your age: "
while True:
age = input(prompt)
age = int(age)
if age == 'quit':
break
elif age <= 3:
print("Your ticket is free")
elif age <= 10:
print("Your ticket is $10")
else:
print("Your ticket is $15")
除非您输入“退出”以结束循环,否则程序运行正常。 我知道age = int(age)
将用户输入定义为整数。 我的问题是如何将其更改为不将“ quit”视为整数,并在输入“ quit”时结束循环。
如果age
是'quit'
,您还是会破产。 因此,您可以将if
用作下一个。 只要您这样做,之后就可以将其设置为int, if
:
while True:
age = input(prompt)
if age == 'quit':
break
age = int(age)
if age <= 3:
print("Your ticket is free")
elif age <= 10:
print("Your ticket is $10")
else:
print("Your ticket is $15")
但是,当用户键入其他内容时,您应该注意那些情况,所以我建议以下几点:
while True:
age = input(prompt)
if age == 'quit':
break
elif not age.isdigit():
print("invalid input")
continue
age = int(age)
if age <= 3:
print("Your ticket is free")
elif age <= 10:
print("Your ticket is $10")
else:
print("Your ticket is $15")
实际上,我会在这里介绍一个try/except
。
您的应用程序的主要目标是收集年龄。 因此,用try / except包裹您的输入,以始终获取整数。 如果收到ValueError
,则进入异常块并检查是否输入quit
。
该应用程序将告诉用户它正在退出并退出。 但是,如果用户未输入quit
,而是输入其他字符串,则会提示您该输入无效,并且它将继续询问用户有效年龄。
同样,为了确保您不会错过任何可能用不同大小写键入的“退出”消息,您可以始终将输入设置为lower
以始终比较字符串中的相同大小写。 换句话说,当您检查要quit
的条目时,请使用age.lower
。
这是一个工作示例:
prompt = "\nEnter 'quit' when you are finished."
prompt += "\nPlease enter your age: "
while True:
age = input(prompt)
try:
age = int(age)
except ValueError:
if age.lower() == 'quit':
print("Quitting your application")
break
else:
print("You made an invalid entry")
continue
if age <= 3:
print("Your ticket is free")
elif age <= 10:
print("Your ticket is $10")
else:
print("Your ticket is $15")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.