【问题标题】:If/else Python 3: Else statement not working [duplicate]If/else Python 3:Else语句不起作用[重复]
【发布时间】:2020-04-29 05:55:58
【问题描述】:
目前正在处理我的第一个程序,而我的 Else 语句在以下代码中不起作用:
info = input("<Y/N>")
if (info == "Y" or "y"):
print("Calculating...")
else:
raise SystemExit
程序只是继续
print("正在计算...")
即使输入不是 "Y" 或 "y"
【问题讨论】:
标签:
python
python-3.x
if-statement
【解决方案1】:
if (info == "Y" or "y"):
相当于说
if ((info == "Y") or ("y"))
由于y 不是零、null 或等效值,它的计算结果为真。
以下任一项都可以:
if (info == "Y" or info == "y")
if (info in ("y", "Y"))
if (info.lower() == "y")
【解决方案2】:
你应该这样写:
info = input("<Y/N>")
if (info == "Y" or info == "y"):
print ("Calculating...")
else:
raise SystemExit
在你的声明中:
info == "Y" or info == "y"
"y" 始终是True
【解决方案3】:
发生的情况是or 运算符将左侧和右侧视为布尔(真假)语句。它在左侧看到的是info == "Y",这可能是真或假,具体取决于输入。在右侧,它看到"y" 并检查"y" 是否为真。在 python 中,当评估为布尔值时,非空字符串计为真。要解决此问题,有两种检查方法。
if info == "Y" or info == "y":
if info in ["y", "Y"]:
【解决方案4】:
让我把这个添加到上面的答案中:一种更 Pythonic 的检查方式
if (info == 'Y' or info == 'y')
由
完成
if info.lower() == 'y'.
当然,info 必须是字符串。