首先你得清楚为什么会报错,在你写的这个代码里,用户可以input两种内容,第一个是quit第二个是数字,quit是字符串,你后面每个if的判断条件都加了int,比如这个:
if
int(message) < 3 and
int(message) > 0:
如果你输入的是数字,那没问题input之后可以把str的数字用int转换成整形的,但是如果输入的是quit,则没办法用int转换。之所以放在第一行可以,就是因为,如果你输入的是quit,直接就进入if的判断,如果是quit就break出来,否则就肯定输入的数字,然后再进行下面的判断。其实这么写没有任何问题,不知道你为什么想把它放在最后判断

,如果你只是单纯的是想把退出这个功能放在最后判断的话,我建议你可以这么写:
prompt = "请输入年龄(-1 = 退出):"
message = ""
while True:
message = input(prompt)
if int(message) < 3 and int(message) > 0:
print ("you are free.")
elif int(message) >= 3 and int(message) < 12:
print ("you pay 10 dollars")
elif int(message) >= 12:
print ("you pay 15 dollars")
elif int(message)<0:
break
print('欢迎使用')
首先,年龄肯定不可能小于0,所以在第一次判断的时候加一个这个条件,然后把你的退去用-1去表示,不要用quit,然后就能实现放在最后了