程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Python中的“ x = y或z”分配有什么作用?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Python中的“ x = y或z”分配有什么作用??

开发过程中遇到Python中的“ x = y或z”分配有什么作用?的问题如何解决?下面主要结合日常开发的经验,给出你关于Python中的“ x = y或z”分配有什么作用?的解决方法建议,希望对你解决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!

尽管其含义是基于对Pythonandor评估的全面理解而得出的,但其可读性不及三元条件,因此最好完全避免。

结论

绝对不要将其and用于分配,这很容易引起错误,很容易混淆。样式专家会发现orfor赋值的使用不太可取(比更冗长的三元if条件else),但是我发现它在专业的Python社区中是如此普遍,以至于它是惯用的。

如果您选择使用它,请谨慎行事,要理解到final元素(无论达到什么值)将始终返回而不管其评估如何,因此,final元素可能应该是一个 文字 ,这样您就知道您拥有一个很好的默认后备为您的变量。

解决方法

为什么我们看到Python分配or

例如:

def my_function(arg_1=None,arg_2=0):
    determination = arg_1 or arg_2 or 'no arguments given!'
    print(determination)
    return determination

当不带参数调用时,上述函数将打印并返'no arguments given!'

Python为什么要这样做?如何最好地利用这一功能?

大佬总结

以上是大佬教程为你收集整理的Python中的“ x = y或z”分配有什么作用?全部内容,希望文章能够帮你解决Python中的“ x = y或z”分配有什么作用?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。