Python技术需求:实现print及第三个if分支后重新执行输入命令
问题修正与实现
原代码存在逻辑错误,无法实现输入非yes/no时重新询问的需求,以下是修正方案:
原代码问题点
- 第三个条件判断逻辑错误:
rich != "yes" or "no"等价于(rich != "yes") or True,永远为真,正确逻辑应为判断输入是否不在("yes", "no")范围内 - 错误调用
rich():rich是字符串变量,不是函数,无法通过这种方式重新获取输入
修正后的代码
while True: rich = input("Are you rich?(yes/no): ") if rich == "yes": print("damn gg") break elif rich == "no": print("poor bastard") break else: print("it's a yes or no question dumbass") # 不退出循环,自动回到输入步骤重新获取用户输入
代码说明
- 用
while True构建无限循环,实现输入错误时重复执行输入逻辑的需求 - 将独立的
if改为if-elif-else结构,避免冗余判断 - 输入
yes或no时执行对应打印并退出循环;输入其他内容时打印提示,循环自动回到输入语句,重新获取用户输入,完全匹配需求中的两个要求
内容的提问来源于stack exchange,提问作者Baka Boi
相关产品推荐
相关产品推荐

