问题描述
这有效:
1and 1
并计算为 1
。
此 1 and1
会引发 SyntaxError。
为什么前面的空格是可选的,后面的空格不是?
解决方法
只有在两个标记之间的连接可以被解释为不同的标记时,才需要在两个标记之间使用空格...
and1
是一个有效的 identifier,所以 and1
可以被解释为单个标记,而 1and
不是,所以它不可能。
大概至少部分是因为这个,PEP-8 recommends 总是用空格包围它们:
始终用一个空格将这些二元运算符括起来:赋值(=
)、增强赋值(+=
、-=
等)、比较(==
,<
,>
,!=
,<>
,<=
,>=
,in
,not in
,{ {1}}、is
)、布尔值(is not
、and
、or
)。