这个基于布尔值的基本Python代码如何工作?

时间:2016-06-25 12:07:09

标签: python boolean

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时,如果x为&x 39;将被执行为'如果为假:'。因此,声明' x是真的!'应该打印出来。

但相反,'我将在任何情况下打印,其中x不是真的'打印出来。

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

3 个答案:

答案 0 :(得分:2)

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后面的表达式可以是任何表达式,它不必是实际的布尔TrueFalse

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

这是一个方便的功能,一旦你习惯它,它使代码更简洁,更易读。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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块。