Python 3中收集颜色的while循环无法正常退出,求助解决方法
解决Python循环无法正常退出的问题
你好呀!刚学Python遇到这种小问题完全不用不好意思,咱们一步步来搞定它~
你的循环没法正常退出,核心问题出在循环判断条件和你实际的结束操作不匹配:
- 你写的条件是
while colour != ' ',意思是只要输入不是空格就继续循环,但你实际结束时要么是按回车(此时input()返回的是空字符串'',不是空格),要么是输入了return,这俩都不满足“等于空格”的退出条件,所以循环就一直跑下去啦。
方案一:按回车直接退出(最直观的方式)
把循环条件改成检查输入是否为空字符串,因为用户按回车时,input()会返回空字符串'':
colours = [] prompt = 'Enter another one of your favourite colours (type return to end):' # 先获取第一次输入 colour = input(prompt) # 循环条件改为:只要输入不是空字符串就继续 while colour != '': colours.append(colour) colour = input(prompt) # 退出后可以打印列表验证结果 print("你的喜欢的颜色列表:", colours)
方案二:支持按回车或输入'return'退出
如果你想保留“输入return也能退出”的操作,可以把条件改成检查输入是否在允许的退出值里,还能兼容大小写输入:
colours = [] prompt = 'Enter another one of your favourite colours (type return or press enter to end):' colour = input(prompt) # 把输入转小写后,判断是否属于退出触发值 while colour.lower() not in ('', 'return'): colours.append(colour) colour = input(prompt) print("你的喜欢的颜色列表:", colours)
这样修改后,不管你是直接按回车,还是输入return/Return/RETURN,都能正常退出循环啦~
内容的提问来源于stack exchange,提问作者hushie
相关产品推荐
相关产品推荐

