我正在学习 Python,我想确保以正确的方式组织“if”语句。我经常遇到的情况如下:
if x == 0:
dostuff_A
if y == 0:
dostuff_B
else:
dostuff_B
如您所见,我不断重复“dostuff_B”并且不得不不断更改代码两次。我知道我可以有一个函数而不是“dostuff_B”,但我的问题是关于 if 设计。我发现的另一个解决方法是执行以下操作,但随后我复制了 if 语句。
if x == 0:
dostuff_A
if x != 0 or y == 0:
dostuff_B
有什么想法吗?提前致谢!
更新:删除了冒号前的空格。还更新了我的解决方法,因为没有意义。原始版本是:
if x == 0:
dostuff_A
if x == 0 and y == 0:
dostuff_B
最佳答案
我看到已经发布了一些正确的答案,但他们没有解释他们是如何找到解决方案的。
简化嵌套 if-else
语句的一种方法是使用真值表:
x y what you call
-----------------------
0 0 A and B
0 1 A
1 0 B
1 1 B
从上表可以看出,只有当 x == 0
时才调用 A。让我们将其放入代码中:
if x == 0:
somestuff_A
从同一张表中可以看出,唯一不调用 B 的时间是 x == 0
和 y == 1
。
同样,让我们将其放入代码中:
if x != 0 or y == 0:
somestuff_B
或:
if not x == 0 or y == 0:
somestuff_B
如果你把这两段代码放在一起,你会得到这样的结果:
if x == 0:
somestuff_A
if not x == 0 or y == 0:
somestuff_B
关于Python Pythonic 方式来组织/设计 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16177862/