我在2014 -> a0 = 2014, a1 = 2 + 2, a3 = 200 + 200, a4 = 0 + 0
2012 -> a0 = 2012, a1 = 1 + 3, a3 = 100 + 200, a4 = 0 + 0
2011 -> a0 = 2011, a1 = 2, a3 = 200, a4 = 0
语句中有很长的表达式。但显然我不允许拆分我的if语句,即使我没有因为明显的python原因而用缩进来拆分块。我是一个关于python的新手,所以如果我的问题很烦人,我很抱歉。
理想情况下,我希望以这种方式安排if
语句:
if
现在它只是一行而不是很多可读。
答案 0 :(得分:3)
您可以在第一行使用旧式反斜杠,其他人则不需要它,因为您使用括号:
if (expression1 and expression2) or \
(
expression2 and
(
(expression3 and expression4) or
(expression3 and expression5) or
(
expression4 and (expression6 or expression7)
)
)
):
pass
请注意,您的示例必须修复,因为缺少一个右括号。
答案 1 :(得分:1)
使用\将表达式放在多行上,您甚至可以识别它以获得更多可读性:
if (expression1 and expression2) or \
(expression2 and \
(\
(expression3 and expression4) or \
(expression3 and expression5) or \
( \
expression4 and (expression6 or expression7) \
)\
):
pass
答案 2 :(得分:1)
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
语句。
答案 3 :(得分:0)
你可以这样做:
t1_2=(expression1 and expression2)
t3_4=(expression3 and expression4)
t3_5=(expression3 and expression5)
t6_7=(expression6 or expression7)
if test1 or(expression2 and (t3_4 or t3_5 or(expression4 and t6_7)):
pass