当前位置:   article > 正文

[每日一题]22、Python中的三元表达式

python的三类表达式


点击上方Python3X”,选择“置顶或者星标

第一时间收到精彩推送!


Python Every Day, 第 22 天



在Python 有一种语法,初学者看到一脸懵逼,其实它很简单,就是一个语法,不要太当回事。知道它,会用即可。
先看一个例子


 
 
x, y = 1, 5z = x if x > y else y #  如果x > y, z = x 否则 z  = yprint(z)   # 55z = x if x > y else y #  如果x > y, z = x 否则 z  = yprint(z)   # 5'
运行


表达式1 if 条件 else 表达式2 构成一个表达式。 整个表达式的值,是这样计算的,如果if 后面的条件为真,整个三元操作符构成的表达式值为表达式1的值,如果为假,整个表达式的值为表达式2的值。
 
 
x, y = 1, 5z = x if x > y else y #  如果x > y, z = x 否则 z  = yprint(z)   # 5z  = x if x < y else yprint(z) # 15z = x if x > y else y #  如果x > y, z = x 否则 z  = yprint(z)   # 5z  = x if x < y else yprint(z) # 1

三元表达式的替代写法
 
 
x, y = 6, 8z = (lambda : x , lambda : y) [x > y]()print(z) # 6z = (lambda : x , lambda : y)[x < y]()print(z) # 88z = (lambda : x , lambda : y) [x > y]()print(z) # 6z = (lambda : x , lambda : y)[x < y]()print(z) # 8'
运行

 
 
x, y = 6, 8z = (x, y)[x > y]print(z)  # 6 z = (x, y)[x < y]print(z) # 88z = (x, y)[x > y]print(z)  # 6 z = (x, y)[x < y]print(z) # 8



 
 
x, y = 6, 8z = {True: x, False: y}[x > y]print(z) # 8z = {True: x, False: y}[x < y]print(z) # 68z = {True: x, False: y}[x > y]print(z) # 8z = {True: x, False: y}[x < y]print(z) # 6'
运行


 
 
x, y = 6, 8z = (x > y) and x or yprint(z)z = (x < y) and x or yprint(z)8z = (x > y) and x or yprint(z)z = (x < y) and x or yprint(z)



三元表达式在Python中的应用非常广泛,我们可以看一下啊requests库中的一段代码


 
 
# Default empty dicts for dict params.data = [] if data is None else datafiles = [] if files is None else filesheaders = {} if headers is None else headersparams = {} if params is None else paramshooks = {} if hooks is None else hooksself.hooks = default_hooks()for (k, v) in list(hooks.items()):    self.register_hook(event=k, hook=v)self.method = methodself.url = urlself.headers = headersself.files = filesself.data = dataself.json = jsonself.params = paramsself.auth = authself.cookies = cookiesdata = [] if data is None else datafiles = [] if files is None else filesheaders = {} if headers is None else headersparams = {} if params is None else paramshooks = {} if hooks is None else hooksself.hooks = default_hooks()for (k, v) in list(hooks.items()):    self.register_hook(event=k, hook=v)self.method = methodself.url = urlself.headers = headersself.files = filesself.data = dataself.json = jsonself.params = paramsself.auth = authself.cookies = cookies'
运行




以上,便是 今天的分享,希望大家喜欢,觉得内容不错的,欢迎点击「在看」支持,谢谢各位。 如需查看更多[Python Every Day]系列,请点击我的主页的【每日一题】菜单。 640?



感谢您的阅读


640?wx_fmt=gif


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/938840
推荐阅读
相关标签
  

闽ICP备14008679号