Python 3.9.6 - 尝试将标志设置为 False。不断收到错误类型错误:'str' 和'int'实例之间不支持'<'



在下面的代码中,我试图将'active'标志设置为False。这个操作失败。当age为'quit'时,程序应停止运行,但仍将继续运行。

我可以看到错误是因为我试图比较字符串和整数,但我不知道为什么程序会到达那个点。帮助感激。

active = True
while active:
age = input('Enter age for ticket price: ')
if age == 'quit':
active = False
else:
age = int(age)
if age < 3:
print("You get in free!")
elif age < 13:
print("Your ticket is £10.")
elif age > 13:
print("Your ticket is £15.")

错误信息-如果年龄<3:TypeError: '<'在'str'和'int'实例之间不支持

如果您想保留活动标志,则必须避免使用以下行:

if age < 3:

因为age现在是一个字符串(等于'quit')。试试这个:

active = True
while active:
age = input('Enter age for ticket price: ')
if age == 'quit':
active = False
else:
age = int(age)
if age < 3:
print("You get in free!")
elif age < 13:
print("Your ticket is £10.")
elif age > 13:
print("Your ticket is £15.")

你需要在收到退出信号后打破循环,要么在active=False之后使用continue,要么简单地使用break,然后你甚至不再需要活动标志,你可以写while True:

它中断的原因是因为循环内的代码仍然执行直到结束,并且比较'quit' < 3

最新更新