在if语句中使用布尔值

时间:2014-12-04 07:12:08

标签: python if-statement boolean

计划1

list=[1,2,3,4]
A=3 in list
if A:
    print('True')

计划2

list=[1,2,3,4]
if A=3 in list:
    print('True')

所以我有这两个程序。程序1运行正常,我理解为什么,但程序2没有。我认为,因为A=3 in list返回true或false,你可以将它作为if循环的一部分嵌入,但我猜不是。这是为什么?这是怎么回事?

5 个答案:

答案 0 :(得分:3)

if A=3 in list:是无效的语法。您可能正在寻找原始布尔表达式if 3 in list

另外,请勿使用list作为变量名。您将覆盖Python提供的实际list方法。

答案 1 :(得分:2)

在Python中,赋值是语句而不是表达式,因此它们不返回任何值。 (更多细节:Why does Python assignment not return a value?

答案 2 :(得分:0)

查看程序中嵌入的评论:

计划1

list=[1,2,3,4]
# 3 in list evaluates to a boolean value, which is then assigned to the variable A
A=3 in list
if A:
    print('True')

计划2

list=[1,2,3,4]
# Python does not allow this syntax as it is not "pythonic"
# Comparison A == 3 is a very common operation in an if statement
# and in other languages, assigning a variable in an if statement is allowed,
# As a consequence, this often results in very subtle bugs.
# Thus, Python does not allow this syntax to keep consistency and avoid these subtle bugs.
if A=3 in list:
    print('True')

答案 3 :(得分:0)

很简单,你不能在if

中使用赋值运算符

喜欢这里

  A=3

python会将其读作赋值并抛出错误

答案 4 :(得分:0)

第一个例子相当于:

A = (3 in list)
#i.e. A is boolean, not an integer of value 3.

第二个例子只是无效的语法。