Python学习笔记——CSDN学习记录二十:三元表达式

三元表达式

        Python没有其他语言的三元表达式(三目运算符)相关说法,但有类似语法。在 Python 中,三元表达式是一种语法结构,一般叫做条件表达式,结构如:

        表达式(1)为True执行语句  if  条件表达式(1)  else  表达式(1)为False执行语句

一、用于 if 语句简化:

        例:判断是否成年:

age = 20

if age >= 18 :
    cn = "成年"
else:
    cn = "未成年"

        将简单 if 语句缩减为一行代码:

age = 20

cn = "成年" if age >= 18 else "未成年"

二、返回多个语句:

age1 = 14
cn1 = ("成年", age1) if age1 >= 18 else ("未成年",age1)

age2 = 20
cn2 = age2, "成年" if age2 >= 18 else "未成年"

age3 = 14
cn3 = age3, "成年" if age3 >= 18 else "未成年"

print(cn1)
print(cn2)
print(cn3)


# 输出结果:
#   
#       ('未成年', 14)
#       (20, '成年')
#       (14, '未成年')

三、在函数内部使用三元表达式:

        例:判断奇数偶数:

def even_num(num):

    return True if num % 2 == 0 else False

四、用于列表推导式:

li = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

ret1 = [i for i in li if i % 2 == 0]
ret2 = [i if i % 2 == 0 else None for i in li]

print(list(ret1))
print(list(ret2))


# 输出结果:
#   
#       [2, 4, 6, 8, 10]
#       [None, 2, None, 4, None, 6, None, 8, None, 10]

五、三元表达式与 lambda 函数:

        例:声明一个函数,返回较大值:

def max(a, b):

    if a > b:
        ret = a
    else:
        ret = b

    return ret


r = max(5, 6)

print(r)



# 输出结果:
#   
#       6

        lambda 函数与三元表达式的混合:

max = lambda a, b: a if a > b else b

r = max(10, 15)

print(r)


# 输出结果:
#   
#       15

六、嵌套使用:判断不小于 20 的奇数偶数:

ret = [ (num, "小于20") if num < 20 else ((num , 
            "奇数") if num % 2 == 1 else (num, 
            "偶数")) for num in list(range(15,25))]

print(ret)


# 输出结果:
#   
#       [(15, '小于20'), (16, '小于20'), (17, '小于20'), (18, '小于20'), 
#		 (19, '小于20'), (20, '偶数'), (21, '奇数'), (22, '偶数'), 
#		 (23, '奇数'), (24, '偶数')]

七、扩展使用:

        1. 元组条件表达式:

for age in list(range(15,20)):

    cn = ((age, "未成年"),(age, "成年"))[age >= 18] 

    print(cn)


# 输出结果:
#   
#       (15, '未成年')
#       (16, '未成年')
#       (17, '未成年')
#       (18, '成年')
#       (19, '成年')

        2. 字典条件表达式:

for age in list(range(15,20)):

    cn = {False: (age, "未成年"), True: (age, "成年")}[age >= 18]

    print(cn)


# 输出结果:
#   
#       (15, '未成年')
#       (16, '未成年')
#       (17, '未成年')
#       (18, '成年')
#       (19, '成年')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HaJucy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值