Python 中的三元运算符详解

概述

这个Python中的三元运算符是在一行中编写简单if/else语句的一种简洁方式。它通过计算布尔条件返回true或false值。它比简单的if/else语句更短,可读性更强。我们还可以用元组、列表、字典或lambda函数实现三元运算符。三元运算符也可以通过链接来嵌套。

什么是Python中的三元运算符?

这个三元运算符(也称为条件表达式)是用Python编写条件语句的一种简洁方法。它根据布尔条件的结果返回一个值。

有时,编写传统的if/else语句可能会变得忙碌。例如,使用if/else简单地打印内容:


if number % 2 == 0:
  print("Even")
else:
  print("Odd")

这样一个简单的任务需要4行,我们可以在一行中使用三元运算符获得相同的结果。

在下面的部分中,我们将看到如何在Python中使用三元运算符。

外卖

  • 三元运算符是一种在单行中编写简单if/else语句的方法。
  • 三元运算符的语法

    语法:

    
    
    true_value if condition else false_value
    

    下图显示三元运算符返回值1当条件被评估为true时,否则值2返回:

    让我们使用三元运算符来简化之前编写的if/else语句。

    
    
    print("Even" if number % 2 == 0 else "Odd")
    

    完成!仅在一行中

    这个条件运算符被命名为“三元”,因为它由部分。让我们详细了解一下其中的每一个。

    外卖

  • 三元运算符由三个操作数组成。
  • Python三元运算符的三个操作数

    三元运算符包括三个操作数:

    1. 条件:布尔表达式的计算结果为真的或False(错误) .
    2. 真值:条件求值为时要返回的值(任何Python对象)真的 .
    3. False值:条件求值为时要返回的值(任何Python对象)False(错误) .

    外卖

  • 三元运算符包括要求值的条件、true值和基于该条件返回的false值。
  • Python中的三元运算符示例

    我们已经看到了如何使用三元运算符打印不同的值。让我们再看几个例子。

    示例1:使用三元运算符分配变量

    三元运算符允许我们在条件为true时为变量分配一个值,在条件为false时为另一个值。

    假设我们想分配一个变量行动根据变量的值信号 :

    如果信号值为“绿光”,则将动作设置为“移动”,否则将动作设置为“停止”。

    我们可以使用三元运算符在一行中完成此操作:

    
    
    signal = "green light"
    action = "move" if signal == "green light" else "stop"
    print(action)
    

    输出:

    
    
    move
    

    说明:

    首先,条件signal == "green light"已评估。由于信号值为“绿灯”,该条件评估为真的返回三元运算符“move”的第一个值,然后赋给变量行动 .

    示例2:使用三元运算符返回值

    让我们编写一个函数,通过检查客户是否为会员来返回不同的费用金额:

    
    
    def get_fee(is_member):
      return 10 if is_member else 20
    
    print(get_fee(False))
    

    输出:

    
    
    20
    

    说明:

    作为条件是成员(_M)此时为False,则返回第二个值。

    外卖

  • 我们可以根据条件使用三元运算符为变量指定不同的值。
  • 我们可以使用三元运算符根据条件从函数返回值。
  • 在Python中实现三元运算符的各种方法

    尽管我们有如上所述定义三元运算符的简单方法,但我们也可以使用以下方法实现三元运算符:

  • 薄纱
  • 列表
  • 字典
  • Lambda函数
  • 1.用元组实现三元运算符

    我们可以用元组实现三元运算符:

    元组是用括号定义的不可变数据结构,用于存储有序的值序列。例如: (1, 2, 3)是具有三个值的元组。由于元组是不可变的,因此在定义元组之后,不能更改元组中的值。

    语法:

    
    
    (false_value, true_value)[condition]
    

    例子:

    
    
    signal = "green light"
    action = ("stop", "move")[signal == "green light"]
    print(action)
    

    输出:

    
    
    move
    

    说明:

    我们首先创建了一个元组-(“停止”、“移动”)包含true和false条件的值。然后我们使用索引-[signal == "green light"]以选择其中一个值

    这样做的原因是条件将返回False(错误)或真的当进行索引时,其将被分别转换为0或1。

    因此,第一个值(第0个索引)对应于False,第二个值(第一个索引)相应于True。

    与我们的例子一样,条件的计算结果为True,因此返回“move”。

    2.用列表实现三元运算符

    我们可以用列表实现三元运算符:

  • 列表是用方括号定义的可变数据结构,用于存储有序的值序列。
  • 例如: [1, 2, 3]是一个包含三个值的列表。
  • 列表类似于元组,但它们是可变的,这意味着我们可以更改其中的值。
  • 语法:

    
    
    [false_value, true_value][conditon]
    

    例子:

    
    
    signal = "green light"
    action = ["stop", "move"][signal == "green light"]
    print(action)
    

    输出:

    
    
    move
    

    说明:

    这个示例与元组1类似。我们只是使用了一个列表而不是元组,工作方式保持不变。

    3.用字典实现三元运算符

    我们可以使用字典实现三元运算符:

    字典是键:值对的集合,其中每个值都使用唯一的键进行访问。它是用花括号定义的。例如:{“name”:“harry”,“age”:11}是一本有两个键的字典。使用键而不是列表中的索引来访问值。

    语法:

    
    
    {True: true_value, False: false_value}[condition]
    

    例子:

    
    
    signal = "green light"
    action = {True: "move", False: "stop"}[signal == "green light"]
    print(action)
    

    输出:

    
    
    move
    

    说明:

    在这种情况下,还首先创建一个字典,然后根据字典的键对条件进行求值和匹配,这些键是真的或False(错误),并返回相应的值

    与元组或列表不同,true或false值的顺序与字典无关。

    4.用Lambda函数实现三元运算符

    我们可以使用lambda函数实现三元运算符:

    lambda函数是一个匿名函数,它使用λ关键字而不是通常的关键字 定义关键字。例如:double = lambda x: x * 2是采用一个参数的lambda函数x .

    语法:

    
    
    (lambda x: false_val, lambda x: true_val)[condition](args)
    

    例子:

    
    
    signal = "green light"
    action = (lambda msg: f"stop {msg}", lambda msg: f"move {msg}")[signal == "green light"]("now")
    print(action)
    

    输出:

    
    
    move now
    

    说明:

    我们还可以在元组内提供lambda函数,而不是像以前那样提供硬编码的值。将根据条件调用lambda函数之一。

    外卖

  • 您还可以使用元组、列表、字典或lambda函数实现三元运算符。
  • 三元运算符与if/else

    如果我们使用传统的If/else语句完成了相同的示例,则需要4行:

    如果信号值为“绿光”,则将动作设置为“移动”,否则将动作设置为“停止”。

    
    
    signal = "green light"
    
    if signal == "green light":
      action = "move"
    else:
      action = "stop"
    
    print(action)  
    

    输出:

    
    
    move
    

    现在您可以看到,对于简单的条件语句,与传统的if/else语句相比,三元运算符是一个更短、更可读的选择。

    外卖

  • 对于简单的if/else语句,三元运算符是更好的选择。
  • Python中的嵌套三元运算符

    我们还可以嵌套三元运算符,下面是一个示例:

    代码:

    
    
    signal = "red light"
    action = "move" if signal == "green light" else "stop" if signal == "red light" else "Invalid Signal"
    print(action)
    

    输出:

    
    
    stop
    

    这相当于以下if/else语句:

    
    
    signal = "red light"
    
    if signal == "green light":
      action = "move"
    elif signal == "red light":
      action = "stop"
    else:
      action = "Invalid Signal"
    
    
    print(action)
    

    记住,强大的力量会带来巨大的责任,仅仅因为你可以嵌套三元运算符并不意味着你应该一直这样做。嵌套三元操作符可能会损害可读性,并在开发过程中引发问题。

    外卖:

  • 我们可以通过链接三元运算符来嵌套它们。
  • 我们应该避免嵌套,因为它可能会损害可读性。
  • 还有,看看这个文章了解Python中的运算符。

    结论

  • 三元运算符是在单行中编写简单if/else语句的简洁方法。
  • 语法:如果条件为false,则为true_value .
  • 三元运算符包括:
  • 条件
  • 真值
  • False值
  • 可以使用三元运算符分配变量。
  • 三元运算符比简单的if/else语句更短,可读性更强。
  • 我们还可以通过以下方式实现三元运算符:
  • 多元组
  • 列表
  • 字典
  • Lambda函数
  • 我们可以通过链接三元运算符来嵌套它们,以编写复杂的if/else语句。这会损害可读性,应该避免。
  • 作者:新华

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python 中的三元运算符详解

    发表回复