在下面的代码中,'else'对于所有'if'语句都是相同的?是否有一种方法,只有一个"else"语句,而不是重复相同的代码在所有的"if"语句块为"else"语句?
这里的例子:
if condition A == "Yes":
print("A")
if condition B == "Yes":
print("B")
else:
print("D")
if condition C =="Yes":
print("C")
else:
print("D")
else:
print("D")
流程图
在嵌套if else的情况下,可以使用guard
类型语句。guard
在嵌套if-else的情况下很流行,它提供了一个干净的代码。
Guard语句尝试先处理else情况。我们写else情况来执行偏离路径。如果我们去掉偏离路径优先。
例如,如果您有
if condition A == "Yes":
print("A")
if condition B == "Yes":
print("B")
else:
print("D")
if condition C =="Yes":
print("C")
else:
print("D")
else:
print("D")
现在我可以格式化下面的
// 1
if condiation A == "No" {
print("D")
return
}
// 2
if condition B == "Yes" {
print("B")
return
}
if condition C == "No" {
print("D")
return
}
print("C")
更多内容请点击链接:- Youtube
您看起来像在嵌套的测试序列
你测试A如果A没问题,你测试BC
如果任何测试失败,打印D
所以…你要么离开测试序列,测试所有的东西,打印所有的是结果或打印D,如果任何测试失败(看起来像一个大的错误消息)
或你保留了难看的if else序列
如果你去测试一切你可以创建一个函数
def TestThis(Value, id):
if value == "Yes":
print(id)
return 1
else:
return 0
,并像这样命名:
if TestThis(A, "A") == 0:
integrity = 1
elif TestThis(B, "B") == 0:
integrity = 1
elif TestThis(C, "C") == 0:
integrity = 1
if integrity == 1:
print("D")
我很确定你能找到一种方法最终得到你的序列测试。
编辑以创建从一开始就是目标的顺序测试