zsbd
帮你分析一波,耐心看
b = "o"
if b == "y" or "y": # 原题
print("yes")
elif b != "Y" or "y":
print("no")
print(b == "Y" or "y") # 输出y,说明b不等于y,但是or右边的数非零所以"y" or "y"为真
# 输出 no
if b == "y" or 0: # b不等于y,但是or右边的数是零所以"y" or "y"为假
print("yes")
elif b != "Y" or "y":
print("no")
# 输出yes
if b == "y" or "y": # 可以看到当if语句执行后即使满足elif条件语句也不会执行
print("yes")
elif b == "o":
print("no")
if b != "Y" or "y": # 将if语句和elif语句条件调换输出no
print("no") # 说明"Y" or "y"也为真,这就是你疑惑为什么
elif b == "y" or "y": # elif为真但是却输出yes的原因
print("yes")
望采纳
or操作在左边表达式为假时,返回右边表达式的值
b == "Y"为假,但右边"y"为真(这里并非b == "y", 而是直接对字符串”y“取布尔值,因此为真),打印”yes“
一般这种建议用in和not in进行判断
if b in ("Y", "y"):
print("yes")
else:
print("no")
把b=="Y"or"y"换成b=="Y"or b=="y"
改正如图:
你 代码 写的不对
b = "o"
if b == "y" or b == "Y":
print("得到了Y")
elif b in ("x","X"):
print("得到了X")
else:
print(b)
给你个建议 :代码 与关键字 中间 最好有空格来隔开 这样看起来 整洁 清洗
正确写法如下:
b = "o"
if b == "Y" or b == "y":
print("yes")
elif b !="Y" or b !="y":
print("no")
else:
print(b)