如果决定与列表变量

时间:2019-05-20 09:37:08

标签: python if-statement

在C / C ++中,将true标准化为1,将false标准化为0。尽管不是一种好的做法,

if variable:  
    #do something

在python中似乎可以进行某种决策,并且似乎可以根据变量是None还是零(如果是数字)来进行决策。跟随是合理的。

a = 123123
if a:
    print "if condition is true"  # this prints

a = "a string"
if a:
    print "if condition is true"  # this prints

a = None
    if a:
        print "if condition is true"  # this does not print

但是,我想知道为什么它用一个空列表(不为零,也不为零)的结果为false。 python if语句的确切实现是什么?

a = [] # a is not  None
if a:
   print "true" # this does not print

2 个答案:

答案 0 :(得分:0)

列表是空的,所以它们是False,这就是python的反应,要知道某物是否是False,以免陷入困境,请执行以下操作:

>>> bool([])
False
>>> 

就是False

答案 1 :(得分:0)

if语句需要布尔值。这意味着分析if之后的表达式是布尔上下文。换句话说,它会转换为bool。

如果是布尔语境,则以下各项的评估结果为False(非详尽列表):

  • 没有
  • 数字0
  • 空列表
  • 空字符串
  • 空字典

非空数值和非空可迭代项都蒸发到True