根据 PEP8 指南,使用二元运算符换行时出现 IndentationError

IndentationError on breaking a line with binary operators as per the PEP8 guidelines

我正在尝试根据 PEP8 指南在 Python 中缩进以下行:

temperature_rate = (temperature_values[-1] - temperature_values[0])
                   / (len(temperature_values) * MONITOR_RATE)

但是我在这一行得到了一个 IndentationError 表示 "unexpected indent":

    / (len(temperature_values) * MONITOR_RATE)
    ^
IndentationError: unexpected indent

我试过以多种方式缩进第二行,但它们都导致相同的 IndentationError。有人可以帮助我理解为什么会出现此错误吗?

有两种方法可以分解长表达式,要么使用明确的换行符,\:

temperature_rate = (temperature_values[-1] - temperature_values[0]) \
                   / (len(temperature_values) * MONITOR_RATE)

或者,首选方式,使用括号:

temperature_rate = ((temperature_values[-1] - temperature_values[0])
                    / (len(temperature_values) * MONITOR_RATE))

注意,这适用于任何括号表达式,这就是为什么您可以写一个列表文字,如:

my_list = ['a',
           'b',
           'c']