本帖最后由 Daniel_Zhang 于 2020-12-28 19:25 编辑
给你来个简单的吧:
active_01 = True
prompt_01 = "你多大了?输入你的年龄,来看看你的票价吧!"
prompt_01 += "\n输入”-1“以结束程序: "
while active_01:
age = input(prompt_01)
if age.isdigit():
age = int(age)
if 0<= age < 3:
print("您可以免票入场。")
elif 3<= age < 12:
print("您的票价为10美元。")
elif age >= 12:
print("您的票价为15美元。")
else:
active_01 = False
isdigit() 会检查字符串 string 是否为 纯数字 组成的,即单纯的由 0~9 组成的数字,不包含任何的 负数。此处年龄不可能为负数,且年龄不可包含字母,所以只有当用户输入的数值为非负数并且不含任意字母或文字的时候,active_01 才不会发生改变(不会变成 False)
再来给你一个极简版的吧:
while True:
age = input("你多大了?输入你的年龄,来看看你的票价吧!\n输入'-1'以结束程序:")
if age.isdigit():
age = int(age)
if 0<= age < 3:
print("您可以免票入场。")
elif 3<= age < 12:
print("您的票价为10美元。")
else:
print("您的票价为15美元。")
else:
break
while True 表示当条件为真时,持续运行,直到达到退出条件或者被用户手动关闭,和楼主的有异曲同工之处,只不过是简化了
此处的 elif age >= 12 可以被改成 else,因为只有当 input 为数字且不带符号(不为负数)时,才会通过 if age.isdigit() 的判断,所以此处的 else 即为 elif age >= 12
break 是直接退出当前的循环,即退出 while 循环。注意,如果是嵌套循环,则需要看break所处的位置鉴别跳出的是内层还是外层循环。此处是单层,只有一个的 while 循环,所以直接退出了
讲道理,楼上几位大佬用的那些 try 和 except,按照你现在的基础,应该是还没有学的,先不说能不能看懂,python 本来就是追求极简的。
如果该答案对你有帮助,请设置为最佳答案。码字不易,谢谢!
|