我正在尝试创建一个多层次的IF语句,并且我不确定下面的语句是否被正确地格式化。
我在阅读下面嵌套的IF语句时遇到了困难,是否有可能以更高效的方式编写这段代码?
if (a>= gT) and (cLow> rBT):
print("Alpha 1")
if (a_high> c_high) and (c_low < d_low):
if (a> abc) and (a< c_low):
print("Final Count")
if (min(a, b) > min(c, d)) and \
(max(e,f) > max(g, h)): print("All Memory Deleted")发布于 2018-05-02 13:03:14
除了使缩进更加统一,去掉多余的括号外,结合第2和第3 if测试,您没有什么可以改进的。
if a >= gT and cLow > rBT:
print("Alpha 1")
if a_high > c_high and c_low < d_low and a > abc and a < c_low:
print("Final Count")
if min(a, b) > min(c, d) and max(e,f) > max(g, h):
print("All Memory Deleted")将第二次和第三次if测试组合在一起是安全的,原因是and操作符“短路”,也就是说,在expression_1 and expression_2中,如果expression_1是假的,那么expression_2就不会被评估。有关此主题的更多信息,请参阅我的答案这里,并提供示例(在Python2中)。
顺便说一句,如果可能的话,最好避免反斜杠的继续:它太脆弱了。反斜杠后的任何空格都会中断继续。相反,如果长表达式尚未使用某种形式的括号,则通常可以将其封装在括号中。例如,
if (min(a, b) > min(c, d) and
max(e,f) > max(g, h)):有关更多细节,请参见Python指南佩普-0008。
发布于 2018-05-02 13:10:58
虽然不这样做可能有几个原因,但是如果嵌套的if语句的可读性对您非常重要,那么执行时间就会出现在脑海中,类似的情况也是如此。
case_1 = case_2 = case_3 = False
try:
case_1 = a >= gT and cLow > rBT
case_2 = a_high > c_high and c_low < d_low and a > abc and a < c_low
case_3 = min(a, b) > min(c, d) and max(e, f) > max(g, h)
except NameError:
pass
if case_1:
print("Alpha 1")
if case_2:
print("Final Count")
if case_3:
print("All Memory Deleted")https://stackoverflow.com/questions/50135227
复制相似问题