Python:赋值运算符和同一行中的double-equals

时间:2018-04-10 06:28:42

标签: python

这是允许的语法吗?

for bit in binary_string:
    is_zero = bit == '0'
    ...  

编辑:我的IDE 终端中的Python抛出语法错误。我在这里找到了它:https://github.com/johnmee/codility/blob/master/ex-1-1-binarygap.py#L33

编辑:

>>> N = 1004
>>> binary_string = str(bin(N))[2:]
>>> for bit in binary_string:
...     is = bit == '0'
  File "<stdin>", line 2
    is = bit == '0'
     ^
SyntaxError: invalid syntax

2 个答案:

答案 0 :(得分:2)

允许您的问题是is是保留关键字,例如

foo is None

重命名变量;)

答案 1 :(得分:1)

是的,这是合法的,因为=的右侧是表达式,它返回一个值。在这种情况下,值为TrueFalse。评估表达式后,将名称is_zero分配给该值。

您的SyntaxError被提出是因为您尝试分配受保护的字is