今天在习题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后直接break
message = ('\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美元!')


最后修改:2022 年 12 月 05 日
如果觉得我的文章对你有用,请随意赞赏