【问题标题】:How does this basic Python code based on booleans work?这个基于布尔值的基本 Python 代码是如何工作的?
【发布时间】:2016-10-27 22:57:29
【问题描述】:
x = False

if x:
     print 'x was True!'
else:
     print 'I will be printed in any case where x is not true'

在代码的第一行,我们赋值 x = False。

我想了解'if x:' 行是什么意思。 当 x 的值为 False 时,是否意味着 'if x:' 行将作为 'if False:' 执行。因此,陈述“x 为真!”应该打印出来。

但是,'I will be print in any case where x is not true' 会打印出来。

我认为我在理解布尔值的工作方式时遇到了一些问题。我哪里错了?

【问题讨论】:

  • 如果 if 子句的值为 true,则执行 if 子句。因此,如果 x 为 False "print 'x was True!'" " 将不会被执行,而 else 子句将被执行。
  • 我想我将布尔运算符与条件语句混淆了。谢谢。
  • 您将xx == False 混淆了。

标签: python boolean


【解决方案1】:

Python 不懂英语。它不知道print 之后引号中的内容实际上是什么意思。因此,如果执行到达print 'x was True!' 行,它只会盲目地打印出该文本。但是执行不会到达那条线。

if some_expression:
    do_this_stuff()
else:
    do_that_stuff()

首先,评估some_expression
如果它的布尔值为True,则将调用do_this_stuff()
但是如果some_expression的布尔值为False,那么do_that_stuff()就会被调用。

您的代码有if x:,其中xFalse,因此只有else 部分中的代码会被执行。


if 后面的表达式可以是 any 表达式,它不必是实际的布尔值 TrueFalse

在 Python 中,当各种“null”对象出现在布尔上下文中时,它们被认为是 False:这包括数字零、空字符串 ''、空列表 []、空元组 @ 987654339@,空字典{},空集set();我想你可以看到模式。 :) 非空对象被认为是真。

这是一个方便的功能,一旦您习惯了它,它就会使代码更简洁、更易读。

【讨论】:

    【解决方案2】:

    仅当 if 条件为 false 时才会执行 else 块。 所以在这段代码中给出 False 时,它​​会跳转到 else 块。

    【讨论】:

      【解决方案3】:

      if...else 语句的语法是:

      if boolean_expression :
          # statement(s) will execute if the boolean expression is true
      else
          # statement(s) will execute if the boolean expression is false
      

      如果布尔表达式的计算结果为 True,则执行 if 块,否则执行 else 块。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-01
        • 2021-10-11
        • 1970-01-01
        • 2017-11-28
        • 1970-01-01
        相关资源
        最近更新 更多