1

我有一个奇怪的复杂数学公式,为了更好地理解,我缩进如下:

EIET = IET
       + (TLBHR * {(1-PFR) * (TLBT + MAT)
                   + PFR   * (TLBT + MAT + PFT)
                  }
         )
       + (TLBMR * {(1-PFR) * (TLBT + MAT * (NPT + 1))
                   + PFR   * (TLBT + MAT * (NPT + 1) + PFT)
                  }
         )

然后我运行它才意识到它导致了意外的缩进。我怎样才能保留这些缩进以便更好地理解方程并仍然在 python 中执行它而不给出缩进错误?

4

2 回答 2

6

根据 PEP-8 的首选方法是将整个内容包裹在括号中。

包装长行的首选方法是在括号、方括号和大括号内使用 Python 的隐含行继续。通过将表达式括在括号中,可以将长行分成多行。这些应该优先使用反斜杠来继续行。

反斜杠有时可能仍然合适。例如,长的、多个 with 语句不能使用隐式延续,所以反斜杠是可以接受的:

资源

此外,您不能将大括号{}用作括号。改用括号()

EIET = (IET
       + (TLBHR * ((1-PFR) * (TLBT + MAT)
                   + PFR   * (TLBT + MAT + PFT)
                  )
         )
       + (TLBMR * ((1-PFR) * (TLBT + MAT * (NPT + 1))
                   + PFR   * (TLBT + MAT * (NPT + 1) + PFT)
                  )
         ))
于 2019-08-02T20:41:32.813 回答
3

只需\在行尾添加一个:

EIET = IET \
       + (TLBHR * {(1-PFR) * (TLBT + MAT) \
                   + PFR   * (TLBT + MAT + PFT) \
                  } \
         ) \
       + (TLBMR * {(1-PFR) * (TLBT + MAT * (NPT + 1)) \
                   + PFR   * (TLBT + MAT * (NPT + 1) + PFT) \
                  } \
         )

PS:您不能{在 python 中使用数学运算,只需将它们更改为(and )

EIET = IET \
       + (TLBHR * ((1-PFR) * (TLBT + MAT) \
                   + PFR   * (TLBT + MAT + PFT) \
                  ) \
         ) \
       + (TLBMR * ((1-PFR) * (TLBT + MAT * (NPT + 1)) \
                   + PFR   * (TLBT + MAT * (NPT + 1) + PFT) \
                  ) \
         )
于 2019-08-02T20:38:38.723 回答