在下面的代码中,我试图将'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