list=[1,2,3,4]
A=3 in list
if A:
print('True')
list=[1,2,3,4]
if A=3 in list:
print('True')
所以我有这两个程序。程序1运行正常,我理解为什么,但程序2没有。我认为,因为A=3 in list
返回true或false,你可以将它作为if循环的一部分嵌入,但我猜不是。这是为什么?这是怎么回事?
答案 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.
第二个例子只是无效的语法。