【问题标题】:Using or in if statement (Python) [duplicate]在 if 语句中使用或(Python)[重复]
【发布时间】:2018-07-06 00:57:21
【问题描述】:

我只是在写一个简单的 if 语句。只有当用户键入“Good!”时,第二行才会评估为 true! 如果“太好了!”输入它会执行 else 语句。我可以不使用或不喜欢这个吗?我需要逻辑或吗?

    weather = input("How's the weather? ")
if weather == "Good!" or "Great!": 
    print("Glad to hear!")
else: 
    print("That's too bad!")

【问题讨论】:

  • 那不会如你所愿。尝试做if weather in ['Good!', 'Great!'] 或 `if weather == 'Good!'或天气 == '太好了!'

标签: python if-statement conditional


【解决方案1】:

你不能那样使用它。 or 运算符必须有两个布尔操作数。你有一个布尔值和一个字符串。你可以写

weather == "Good!" or weather == "Great!": 

weather in ("Good!", "Great!"): 

你写的内容被解析为

(weather == "Good") or ("Great")

在 python 的情况下,非空字符串的计算结果总是True,所以这个条件总是为真。

【讨论】:

  • 很确定问题中的"Great!" 字符串只会被评估为True 而不是例外
  • @PerlPingu:你是对的。我在考虑一般的运算符,忘记了它在 python 中的工作方式。编辑...
  • 感谢您的帮助。为什么这个问题给了我-1?我显然是新手,但我认为这是一个合理的问题。我没有看到专门针对 Python 询问的重复项
  • 哈哈,你显然是新人。你可以在这里对任何事情投反对票。 -1 还不错,我的一些人在几秒钟内就获得了 5-6 次反对票……
  • “or 运算符必须有两个布尔操作数”不正确:("hello" or "world") == 'hello'(1 or 0) == 1or 运算符可以应用于任意两个对象。
猜你喜欢
  • 2020-04-16
  • 2018-07-29
  • 2013-05-06
  • 1970-01-01
  • 1970-01-01
  • 2013-04-05
  • 1970-01-01
  • 1970-01-01
  • 2018-06-21
相关资源
最近更新 更多