如何在Python中编写多行乘法条件而不出现无效语法错误

如何在Python中编写多行乘法条件而不出现无效语法错误,python,Python,以下代码给出了一个错误: if self.from_position in self.supporters or ^ SyntaxError: invalid syntax 代码: 在整个if语句条件周围加括号,如下所示: >>> if (True or ... False or ... True): ... print 'woo' ... woo 这适用于py

以下代码给出了一个错误:

    if self.from_position in self.supporters or 
                                               ^
SyntaxError: invalid syntax
代码:


在整个if语句条件周围加括号,如下所示:

>>> if (True or
... False or
... True):
...     print 'woo'
... 
woo

这适用于python文件和解释器。

在整个if语句条件周围加上括号,如下所示:

>>> if (True or
... False or
... True):
...     print 'woo'
... 
woo

这适用于python文件和解释器。

在行尾添加反斜杠

if 1==1 and\
2==2:
  print 'hi'

在行尾添加反斜杠

if 1==1 and\
2==2:
  print 'hi'
可以使用分隔多行

例如,您的代码将是:

def validate_move_piece(self):
    if (self.from_position in self.supporters or 
    (self.turn == 'X' and self.from_position == self.player_x) or 
    (self.turn == 'Y' and self.from_position == self.player_y) or 
    (self.last_position == self.from_position)):
        return True
    else:
        self.error = ERROR_MOVE_FORMAT 
        return False
看,我已经用一个可以用来分隔多行的

例如,您的代码将是:

def validate_move_piece(self):
    if (self.from_position in self.supporters or 
    (self.turn == 'X' and self.from_position == self.player_x) or 
    (self.turn == 'Y' and self.from_position == self.player_y) or 
    (self.last_position == self.from_position)):
        return True
    else:
        self.error = ERROR_MOVE_FORMAT 
        return False

看,我已经用一个

+1将if语句吞没了一个反斜杠是有效的,但是最好使用括号,因为它很容易在反斜杠后意外地留下空格或其他不可见的字符。此外,括号给读者提供了更多关于复合表达式的视觉线索,而不是一行末尾的反斜杠。最后,如果你想在那一行加上一个注释呢?+1反斜杠是有效的,但是最好用括号,因为在反斜杠后面很容易不小心留下空格或其他不可见的字符。此外,括号给读者提供了更多关于复合表达式的视觉线索,而不是一行末尾的反斜杠。最后,如果你想在那一行加上评论怎么办?谢谢,但我还是不知道在什么情况下可以省略括号。你在想什么?对于单行或使用反斜杠方法时,可以省略外部参数。你也可以用外括号来表示单行语句,虽然这样做没有效果。谢谢,但我还是不知道在什么情况下可以省略括号。你在想什么?对于单行或使用反斜杠方法时,可以省略外部参数。您也可以将外部参数用于单行语句,尽管这不会产生任何效果。