if b的可读性

2024-09-29 21:23:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我在if语句中有一组非常长的表达式。但是很明显,我不允许分割if语句,即使我没有分割带有缩进的块,这显然是python的原因。我对python完全是个新手,所以如果我的问题很烦人的话,我很抱歉。你知道吗

理想情况下,我希望if语句的排列方式如下:

if (expression1 and expression2) or
(
expression2 and
(
(expression3 and expression4) or 
(expression3 and expression5) or
(
expression4 and (expression6 or expression7)
)
):
    pass

现在都写在一行了,可读性不强。你知道吗


Tags: orandif表达式方式情况原因语句
3条回答

第一行可以使用旧式反斜杠,其他人不需要,因为您使用的是括号:

if (expression1 and expression2) or \
(
expression2 and
(
(expression3 and expression4) or
(expression3 and expression5) or
(
expression4 and (expression6 or expression7)
)
)
):
    pass

请注意,您的示例必须修复,因为缺少一个右括号。他说

使用\将表达式放在多行上,甚至可以识别它以提高可读性:

if (expression1 and expression2) or \
(expression2 and \
    (\
    (expression3 and expression4) or \
    (expression3 and expression5) or \
        ( \
         expression4 and (expression6 or expression7) \
         )\
         ):
    pass

Python有几种允许多行语句的方法。在您的例子中,可以将整个if条件简单地包装在括号中:

if ((expression1 and expression2) or
(
expression2 and
(
(expression3 and expression4) or 
(expression3 and expression5) or
(
expression4 and (expression6 or expression7)
)
)):
    pass

然而,我应该注意到,在一个if语句中有许多条件对我来说似乎有点代码味道。也许可以考虑创建助手函数来包含一些逻辑,或者使用多个if语句。他说

相关问题 更多 >

    热门问题