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


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

第一时间收到精彩推送!


Python Every Day, 第 22 天



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


 
 
x, y = 1, 5z = x if x > y else y #  如果x > y, z = x 否则 z  = yprint(z)   # 55
z = x if x > y else y #  如果x > y, z = x 否则 z  = y
print(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) # 15
z = x if x > y else y #  如果x > y, z = x 否则 z  = y
print(z)   # 5

z  = x if x < y else y
print(z) # 1

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


z = (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) # 88

z = (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) # 68

z = {True: x, False: y}[x > y]
print(z) # 8

z = {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)8

z = (x > y) and x or y
print(z)

z = (x < y) and x or y
print(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 = cookies
data = [] if data is None else data
files = [] if files is None else files
headers = {} if headers is None else headers
params = {} if params is None else params
hooks = {} if hooks is None else hooks

self.hooks = default_hooks()
for (k, v) in list(hooks.items()):
    self.register_hook(event=k, hook=v)

self.method = method
self.url = url
self.headers = headers
self.files = files
self.data = data
self.json = json
self.params = params
self.auth = auth
self.cookies = cookies




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



感谢您的阅读


640?wx_fmt=gif


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值