你的代码在尝试将字符串 'quit'
转换为整数时出错了。因为 'quit'
不是一个有效的整数字符串,所以 int()
函数抛出了一个 ValueError
异常。
要解决这个问题,你需要在将输入转换为整数之前检查用户是否输入了 'quit'
。以下是修改后的代码:
prompt = '\nEnter your age:'
prompt += '\nEnter quit when you are finished.'
while True:
age = input(prompt)
if age == 'quit':
break
try:
age = int(age)
if age < 3:
print('Your ticket price is free.')
elif age <= 12:
print('Your ticket price is $10.')
else:
print('Your ticket price is $15.')
except ValueError:
print("Invalid input. Please enter a valid age or 'quit'.")
解释:
- 循环条件:使用
while True
创建一个无限循环,这样可以持续请求用户输入年龄,直到用户输入 'quit'
。
- 检查退出条件:在每次循环中,首先检查用户输入是否为
'quit'
。如果是,则使用 break
语句退出循环。
- 异常处理:使用
try-except
块来捕获 ValueError
异常。如果用户输入的不是有效的整数,程序会打印一条错误消息并继续下一次循环。
这样,当用户输入 'quit'
时,程序会正常退出,而不会抛出异常。