Python实现的用户退出确认循环为何总是直接退出?
问题根因
- 你的代码错误使用了
or逻辑运算符,导致第一个判断分支永远为真,循环无论输入什么都会直接退出。 - 在Python语法中,
decision == 'n' or 'no'会被拆分为两个独立的判断项:(decision == 'n')和'no'。非空字符串的布尔值恒为True,因此整个if判断的结果永远是True,每次都会执行end = 1直接终止循环。
修复方案
条件判断修改为以下两种合法写法之一即可:
- 完整写出两个判断等式:
decision == 'n' or decision == 'no' - 更简洁易读的
in成员判断:decision in ('n', 'no'),y/yes的判断也做相同逻辑修改。
修复后完整代码
def function_name(s): return s.lower() end = 0 while end == 0: print('Are you sure you want to quit?') decision = function_name(input()) if decision in ('n', 'no'): end = 1 elif decision in ('y', 'yes'): print('Goodbye!') end = 1 condition = 1 else: print("Sorry, I couldn't understand that.\n")
内容的提问来源于stack exchange,提问作者Tyler Schowalter
相关产品推荐
相关产品推荐

