作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 2 个变量,例如 x 和 y,我需要检查其中哪个是None
if x is None and y is None:
# code here
else:
if x is not None and y is not None:
# code here
else:
if x is None:
# code here
if y is None:
# code here
有更好的方法吗?
我正在寻找更短的 IF ELSE
结构。
最佳答案
保留您使用的顺序:
if x is None and y is None:
# code here for x = None = y
elif x is not None and y is not None:
# code here for x != None != y
elif x is None:
# code here for x = None != y
else:
# code here for x != None = y
修改顺序以减少 bool 计算:
if x is None and y is None:
# code here for x = None = y
elif x is None:
# code here for x = None != y
elif y is None:
# code here for x != None = y
else:
# code here for x != None != y
在 4 种情况下,您应该考虑哪个选项的概率较高,哪个选项的概率较高,并保留前两个选项,因为这将减少执行期间检查的条件数量。最后两个选项都会执行 3 个条件,因此这两个选项的顺序并不重要。例如,上面的第一个代码认为 prob(x=None & y=None) > prob(x!=None & y!=None) > prob(x=None & y!=None) ~ prob(x!=None & y=None)
而第二个则认为prob(x=None & y=None) > prob(x=None & y!=None) > prob(x!=None & y=None) ~ prob(x!=None & y!=None)
关于python - 具有 2 个变量和 4 个条件的 IF 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46890548/
我是一名优秀的程序员,十分优秀!