当前位置:   article > 正文

杂项:Python 中的三元运算符_python 三元运算符

python 三元运算符

概述

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

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

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

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

 
  1. if number % 2 == 0:
  2. print("Even")
  3. else:
  4. 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时为另一个值。

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

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

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

 
  1. signal = "green light"
  2. action = "move" if signal == "green light" else "stop"
  3. print(action)

输出:

 
move

说明:

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

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

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

 
  1. def get_fee(is_member):
  2. return 10 if is_member else 20
  3. print(get_fee(False))

输出:

 
20

说明:

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

外卖

  • 我们可以根据条件使用三元运算符为变量指定不同的值。
  • 我们可以使用三元运算符根据条件从函数返回值。

在Python中实现三元运算符的各种方法

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

  • 薄纱
  • 列表
  • 字典
  • Lambda函数

1.用元组实现三元运算符

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

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

语法:

 
(false_value, true_value)[condition]

例子:

 
  1. signal = "green light"
  2. action = ("stop", "move")[signal == "green light"]
  3. 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]

例子:

 
  1. signal = "green light"
  2. action = ["stop", "move"][signal == "green light"]
  3. print(action)

输出:

 
move

说明:

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

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

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

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

语法:

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

例子:

 
  1. signal = "green light"
  2. action = {True: "move", False: "stop"}[signal == "green light"]
  3. 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)

例子:

 
  1. signal = "green light"
  2. action = (lambda msg: f"stop {msg}", lambda msg: f"move {msg}")[signal == "green light"]("now")
  3. print(action)
'
运行

输出:

 
move now

说明:

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

外卖

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

三元运算符与if/else

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

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

 
  1. signal = "green light"
  2. if signal == "green light":
  3. action = "move"
  4. else:
  5. action = "stop"
  6. print(action)

输出:

 
move

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

外卖

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

Python中的嵌套三元运算符

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

代码:

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

输出:

 
stop

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

 
  1. signal = "red light"
  2. if signal == "green light":
  3. action = "move"
  4. elif signal == "red light":
  5. action = "stop"
  6. else:
  7. action = "Invalid Signal"
  8. print(action)

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

外卖:

  • 我们可以通过链接三元运算符来嵌套它们。
  • 我们应该避免嵌套,因为它可能会损害可读性。

还有,看看这个文章了解Python中的运算符。

结论

  • 三元运算符是在单行中编写简单if/else语句的简洁方法。
  • 语法:如果条件为false,则为true_value .
  • 三元运算符包括:
    • 条件
    • 真值
    • False值
  • 可以使用三元运算符分配变量。
  • 三元运算符比简单的if/else语句更短,可读性更强。
  • 我们还可以通过以下方式实现三元运算符:
    • 多元组
    • 列表
    • 字典
    • Lambda函数
  • 我们可以通过链接三元运算符来嵌套它们,以编写复杂的if/else语句。这会损害可读性,应该避免。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/876039
推荐阅读
相关标签
  

闽ICP备14008679号