大佬教程收集整理的这篇文章主要介绍了Python中的“ x = y或z”分配有什么作用?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
or
”表达式对赋值的作用:我们有时会在Python中看到这样的示例,以三元赋值代替条件表达式(实际上,这有助于启发该语言添加条件语句)。
x = a or b
如果bool(a)
返回false
,则x
分配值为b
这是一个条件表达式的示例,该条件表达式可以完成相同的任务,但可能不那么神秘。
def my_function(arg_1=None, arg_2=0):
determination = arg_1 if arg_1 else arg_2 if arg_2 else 'no arguments given!'
print(determination)
return determination
过多重复此语法被认为是不好的样式,否则单行就可以了。缺点是,它是 一个有点重复。
or
表达方式基本情况,x or
y
返回x
如果bool(X)
求值True
,否则它计算y
,(见供参考的文档)。因此,一系列or
表达式具有返回计算的第一个项目True
或最后一个项目的效果。
例如
'' or [] or 'apple' or () or set(['banana'])
返回'apple'
,第一个评估为的项目True
,以及
'' or [] or ()
返回()
,即使它的值为false
。
and
使用为了便于比较,x and y
回报率x
,如果bool(X)
计算结果为false
,否则返回y
。
and
当您考虑到条件and
序列中的所有条件都需要评估True
以使控制流沿着该路径前进时,以这种方式工作是有意义的,并且当您遇到一个条件序列时,继续评估那些项目是没有意义的那就是false
。
and
用于分配的实用程序并不像using那样明显or
,但在历史上曾被用于三元分配。也就是说,在此更清晰直接的构造可用之前:
a = x if condition else y
与布尔运算符形成的等效项是:
a = condition and x or z # don't do this!
尽管其含义是基于对Pythonand
和or
评估的全面理解而得出的,但其可读性不及三元条件,因此最好完全避免。
绝对不要将其and
用于分配,这很容易引起错误,很容易混淆。样式专家会发现or
for赋值的使用不太可取(比更冗长的三元if
条件else
),但是我发现它在专业的Python社区中是如此普遍,以至于它是惯用的。
如果您选择使用它,请谨慎行事,要理解到final元素(无论达到什么值)将始终返回而不管其评估如何,因此,final元素可能应该是一个 文字 ,这样您就知道您拥有一个很好的默认后备为您的变量。
以上是大佬教程为你收集整理的Python中的“ x = y或z”分配有什么作用?全部内容,希望文章能够帮你解决Python中的“ x = y或z”分配有什么作用?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。