【问题标题】:Python, Boolean - Conditionals & Control Flow - Not understandingPython,布尔 - 条件和控制流 - 不理解
【发布时间】:2015-11-09 10:16:05
【问题描述】:

我似乎无法掌握 Bootlean 运算符。我正在使用 Code Academy 的示例。一开始我读错了,我把True or not False and False而不是True or False

谁能给我解释得更清楚一点,这样我可以得到更多的理解。

Assign True or False as appropriate for bool_one through bool_five.

Set bool_one equal to the result of False or not True and True
Set bool_two equal to the result of False and not True or True
Set bool_three equal to the result of True and not (False or False)
Set bool_four equal to the result of not not True or False and not True
Set bool_five equal to the result of False or not (True and True)

【问题讨论】:

  • 首先应用 Python 的运算符优先级规则添加括号,以便操作的分组在视觉上清晰。 (这里的相关规则是“and”的优先级高于“or”,即“a and b or c”等价于“(a and b) or c”,而不是“a and (b or c)”。 ) 完成此操作后,计算出括号表达式的计算结果以及更大的表达式的计算结果。

标签: python boolean boolean-logic


【解决方案1】:

你有三个布尔运算和一些规则:

  1. not,正好相反(又名not True => Falsenot False => True
  2. or,适用于两个操作数x or y,如果其中一个是True,则返回True,如果两者都是False,则返回False
  3. and,适用于两个操作数x and y,如果两者都是True,则返回True,否则返回False
  4. 从左到右评估它们
  5. not 优先级最高,and 次之,最后or
  6. 您可以使用() 更改运算的优先级,就像在日常数学中一样

【讨论】:

  • 严格来说and为false则返回第一个值,否则返回第二个值; or 如果为真则返回第一个值,否则返回第二个。所以[] and 'abc'返回[][] or 'abc'返回'abc',以此类推
  • @augurar,没错,但你只会让他更加困惑。让他先了解布尔演算。
  • @ndn - 感谢您更正我的代码和答案,感谢您为此付出的时间
【解决方案2】:

5.15 Operator Precendence(从最低到最高,我删减了很多运算符)

or
and
not
(expressions...)

所以你可以看到从低到高的优先级是or 然后and 然后not 然后()。示例

False or not True and True

所以如果我添加括号来强调顺序

(False or (not True)) and (True)

变成

(False or False) and (True)
False and True
False

您可以在其他行中遵循此过程

【讨论】:

    【解决方案3】:

    布尔变量可以有两个值之一 - TrueFalse。有几个运算符可以帮助您操作布尔值:

    • not 反转值 - True 变为 False 反之亦然
    • and 返回 True 当且仅当两个操作数都计算为 True
    • or 返回 True 如果其中一个 或 操作数计算为 True

    这个练习要求你将英文语句翻译成python:

    bool_one = False or not True and True
    bool_two = False and not True or True
    bool_three = True and not (False or False)
    bool_four = not not True or False and not True
    bool_five = False or not (True and True)
    

    【讨论】:

      猜你喜欢
      • 2017-05-27
      • 2023-04-07
      • 1970-01-01
      • 1970-01-01
      • 2020-12-30
      • 2015-09-14
      • 1970-01-01
      • 2020-08-14
      • 2018-06-07
      相关资源
      最近更新 更多