今天在习题7.6的问题上出现了一个纠结的问题,感谢群里安徽的群友不懈的努力和尝试,最后由他带来了解决方案
这个问题的根源来自于while循环的时候,False后程序依然运行的问题,下面来看下代码
message = ('\n如果你认为自己输入完毕,请输入 quit 退出') message += ('\n\t请输入你的年龄:') av = True while av: age = input(message) if age == 'quit': av = False#这里就算是False了,循环依然不会结束,还将继续运行,于是在下一步quit转为int的时候报错了 age = int(age) if age < 3: print('你的门票是免费的亲!') elif age < 13: print('你的门票价格是10美元!') else: print('你的门票价格是15美元!')
于是不出所料,False最后依然是只能跟一个else: 来看看群友的答案
注意,我们这里是需要用到一个标志:True或者False,而不是用户输入quit后直接breakmessage = ('\n如果你认为自己输入完毕,请输入 quit 退出') message += ('\n\t请输入你的年龄:') av = True while av: age = input(message) if age == 'quit': av = False else: age = int(age) if age < 3: print('你的门票是免费的亲!') elif age < 13: print('你的门票价格是10美元!') else: print('你的门票价格是15美元!')