1 else '值小于1'b = 2if b > 1:result = "值大于1"else:result = "值大于1"返回多个条件语句#返回元组数据a = 2。_编程三元表达式">
当前位置:   article > 正文

python之三元表达式_编程三元表达式

编程三元表达式

概述

python本身没有类似其他语言的三元运算符,但是可以用if else来替代

表达式定义

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

 示例

  1. a = 2
  2. result = "值大于1" if a > 1 else '值小于1'
  3. b = 2
  4. if b > 1:
  5. result = "值大于1"
  6. else:
  7. result = "值大于1"

返回多个条件语句

  1. #返回元组数据
  2. a = 2
  3. result = "值大于1","值大于0" if a > 1 else '值小于1'
  4. print(result)

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

有些简单的判定逻辑,可以直接使用三元表达式简化,例如判断传入参数是否为偶数。

  1. def even_num(num):
  2. return True if num % 2 == 0 else False

三元表达式用于列表推导式

在列表推导式知识点中,也存在三元表达式的落地应用,例如下述代码。

  1. li = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
  2. # ret = [i for i in li if i % 2 == 0]
  3. ret = [i if i % 2 == 0 else None for i in li]
  4. print(ret)

上述代码重点注意列表生成器部分代码,三元表达式所在位置。

三元表达式与 lambda

有时候可以将三元表达式与 lambda 进行结合,让代码变得更加简洁。

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

  1. def max(a, b):
  2. if a > b:
  3. ret = a
  4. else:
  5. ret = b
  6. return ret
  7. r = max(5, 6)
  8. print(r)

由于上述代码非常简单,可以直接使用 lambda 匿名函数实现。

  1. max = lambda a, b: a if a > b else b
  2. r = max(10, 15)
  3. print(r)

提高场景

Python 条件表达式可以嵌套使用,但是建议最多嵌套两层,而且是在代码简单的情况下,具体编码如下所示,你需要重点学习下述问题。

在嵌套的时候,还需要注意 if 和 else 配对问题。

  1. # 编写一个三元表达式,首先判断其值大于20,然后在判断是奇数(案例,无实际意义)
  2. num = 19
  3. ret = "小于20" if num < 20 else ("奇数" if num % 2 == 1 else "偶数")
  4. print(ret)

扩展知识

在很多地方会将 Python 的条件表达式进行扩展,出现下述两种用法,但都属于炫技能力,实战性不强。

例如下述内容:

元组条件表达式

  1. age = 20
  2. cn = ("未成年", "成年")[age >= 18]
  3. print(cn)

语法格式如下所示

 (当后面的表达式为假时返回,当后面的表达式为真时返回)[条件表达式]

字典条件表达式

  1. age = 20
  2. cn = {False: "未成年", True: "成年"}[age >= 18]
  3. print(cn)
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/938803
推荐阅读
相关标签
  

闽ICP备14008679号