在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
答案 0 :(得分:0)
列表是空的,所以它们是False
,这就是python的反应,要知道某物是否是False
,以免陷入困境,请执行以下操作:
>>> bool([])
False
>>>
就是False
。
答案 1 :(得分:0)
if语句需要布尔值。这意味着分析if
之后的表达式是布尔上下文。换句话说,它会转换为bool。
如果是布尔语境,则以下各项的评估结果为False
(非详尽列表):
非空数值和非空可迭代项都蒸发到True