Python代码条件判断恒为True问题求助:请排查逻辑错误
问题分析:掷骰子代码的条件判断错误
嘿,我一眼就揪出问题所在啦!你这段代码里的条件判断写法犯了Python新手常踩的逻辑坑——第9行的if play == "Yes" or "yes":永远都会返回True,不管用户输入啥。
错误原因详解
在Python中,逻辑运算符or需要连接两个完整的布尔表达式。你写的play == "Yes" or "yes",Python会把它解析成:
(play == "Yes") or ("yes")
而在布尔判断里,非空字符串会被视为True。所以不管play的值是什么,"yes"这个部分永远是True,整个条件自然就始终成立了。
修正方案
这里有两种常用的正确写法:
写法1:明确判断两种输入情况
把每个比较都写完整,确保or两边都是完整的比较表达式:
if play == "Yes" or play == "yes":
写法2:统一转换为小写(更灵活)
用lower()方法把用户输入的字符串转为小写,这样不管用户输入Yes、YES、yEs都能匹配,容错性更强:
if play.lower() == "yes":
修正后的完整代码
import random die1='' die2='' throw='' player='' play = input("Would you like to play?") if play.lower() == "yes": die1 = random.randint(1,6) die2 = random.randint(1, 6) throw = die1 + die2 print(throw) else: print("Thanks anyways!")
内容的提问来源于stack exchange,提问作者Incontinetia buttox
相关产品推荐
相关产品推荐

