找回密码
 会员注册
查看: 30|回复: 0

杂项:Python中的三元运算符

[复制链接]

4

主题

0

回帖

13

积分

新手上路

积分
13
发表于 2024-9-12 15:53:31 | 显示全部楼层 |阅读模式
概述这个Python中的三元运算符是在一行中编写简单if/else语句的一种简洁方式。它通过计算布尔条件返回true或false值。它比简单的if/else语句更短,可读性更强。我们还可以用元组、列表、字典或lambda函数实现三元运算符。三元运算符也可以通过链接来嵌套。什么是Python中的三元运算符?这个三元运算符(也称为条件表达式)是用Python编写条件语句的一种简洁方法。它根据布尔条件的结果返回一个值。有时,编写传统的if/else语句可能会变得忙碌。例如,使用if/else简单地打印内容:ifnumber%2==0:print("Even")else:print("Odd")这样一个简单的任务需要4行,我们可以在一行中使用三元运算符获得相同的结果。在下面的部分中,我们将看到如何在Python中使用三元运算符。外卖三元运算符是一种在单行中编写简单if/else语句的方法。三元运算符的语法语法:true_valueifconditionelsefalse_value下图显示三元运算符返回值1当条件被评估为true时,否则值2返回:让我们使用三元运算符来简化之前编写的if/else语句。print("Even"ifnumber%2==0else"Odd")完成!仅在一行中这个条件运算符被命名为“三元”,因为它由三部分。让我们详细了解一下其中的每一个。外卖三元运算符由三个操作数组成。Python三元运算符的三个操作数三元运算符包括三个操作数:条件:布尔表达式的计算结果为真的或False(错误) .真值:条件求值为时要返回的值(任何Python对象)真的 .False值:条件求值为时要返回的值(任何Python对象)False(错误) .外卖三元运算符包括要求值的条件、true值和基于该条件返回的false值。Python中的三元运算符示例我们已经看到了如何使用三元运算符打印不同的值。让我们再看几个例子。示例1:使用三元运算符分配变量三元运算符允许我们在条件为true时为变量分配一个值,在条件为false时为另一个值。假设我们想分配一个变量行动根据变量的值信号 :如果信号值为“绿光”,则将动作设置为“移动”,否则将动作设置为“停止”。我们可以使用三元运算符在一行中完成此操作:signal="greenlight"action="move"ifsignal=="greenlight"else"stop"print(action)输出:move说明:首先,条件signal=="greenlight"已评估。由于信号值为“绿灯”,该条件评估为真的返回三元运算符“move”的第一个值,然后赋给变量行动 .示例2:使用三元运算符返回值让我们编写一个函数,通过检查客户是否为会员来返回不同的费用金额:defget_fee(is_member):return10ifis_memberelse20print(get_fee(False))输出:20说明:作为条件是成员(_M)此时为False,则返回第二个值。外卖我们可以根据条件使用三元运算符为变量指定不同的值。我们可以使用三元运算符根据条件从函数返回值。在Python中实现三元运算符的各种方法尽管我们有如上所述定义三元运算符的简单方法,但我们也可以使用以下方法实现三元运算符:薄纱列表字典Lambda函数1.用元组实现三元运算符我们可以用元组实现三元运算符:元组是用括号定义的不可变数据结构,用于存储有序的值序列。例如: (1,2,3)是具有三个值的元组。由于元组是不可变的,因此在定义元组之后,不能更改元组中的值。语法:(false_value,true_value)[condition]例子:signal="greenlight"action=("stop","move")[signal=="greenlight"]print(action)输出:move说明:我们首先创建了一个元组-(“停止”、“移动”)包含true和false条件的值。然后我们使用索引-[signal=="greenlight"]以选择其中一个值这样做的原因是条件将返回False(错误)或真的当进行索引时,其将被分别转换为0或1。因此,第一个值(第0个索引)对应于False,第二个值(第一个索引)相应于True。与我们的例子一样,条件的计算结果为True,因此返回“move”。2.用列表实现三元运算符我们可以用列表实现三元运算符:列表是用方括号定义的可变数据结构,用于存储有序的值序列。例如: [1,2,3]是一个包含三个值的列表。列表类似于元组,但它们是可变的,这意味着我们可以更改其中的值。语法:[false_value,true_value][conditon]例子:signal="greenlight"action=["stop","move"][signal=="greenlight"]print(action)输出:move说明:这个示例与元组1类似。我们只是使用了一个列表而不是元组,工作方式保持不变。3.用字典实现三元运算符我们可以使用字典实现三元运算符:字典是键:值对的集合,其中每个值都使用唯一的键进行访问。它是用花括号定义的。例如:{“name”:“harry”,“age”:11}是一本有两个键的字典。使用键而不是列表中的索引来访问值。语法:{True:true_value,False:false_value}[condition]例子:signal="greenlight"action={True:"move",False:"stop"}[signal=="greenlight"]print(action)输出:move说明:在这种情况下,还首先创建一个字典,然后根据字典的键对条件进行求值和匹配,这些键是真的或False(错误),并返回相应的值与元组或列表不同,true或false值的顺序与字典无关。4.用Lambda函数实现三元运算符我们可以使用lambda函数实现三元运算符:lambda函数是一个匿名函数,它使用λ关键字而不是通常的关键字 定义关键字。例如:double=lambdax:x*2是采用一个参数的lambda函数x .语法:(lambdax:false_val,lambdax:true_val)[condition](args)例子:signal="greenlight"action=(lambdamsg:f"stop{msg}",lambdamsg:f"move{msg}")[signal=="greenlight"]("now")print(action)'运行运行输出:movenow说明:我们还可以在元组内提供lambda函数,而不是像以前那样提供硬编码的值。将根据条件调用lambda函数之一。外卖您还可以使用元组、列表、字典或lambda函数实现三元运算符。三元运算符与if/else如果我们使用传统的If/else语句完成了相同的示例,则需要4行:如果信号值为“绿光”,则将动作设置为“移动”,否则将动作设置为“停止”。signal="greenlight"ifsignal=="greenlight":action="move"else:action="stop"print(action)输出:move现在您可以看到,对于简单的条件语句,与传统的if/else语句相比,三元运算符是一个更短、更可读的选择。外卖对于简单的if/else语句,三元运算符是更好的选择。Python中的嵌套三元运算符我们还可以嵌套三元运算符,下面是一个示例:代码:signal="redlight"action="move"ifsignal=="greenlight"else"stop"ifsignal=="redlight"else"InvalidSignal"print(action)输出:stop这相当于以下if/else语句:signal="redlight"ifsignal=="greenlight":action="move"elifsignal=="redlight":action="stop"else:action="InvalidSignal"print(action)记住,强大的力量会带来巨大的责任,仅仅因为你可以嵌套三元运算符并不意味着你应该一直这样做。嵌套三元操作符可能会损害可读性,并在开发过程中引发问题。外卖:我们可以通过链接三元运算符来嵌套它们。我们应该避免嵌套,因为它可能会损害可读性。还有,看看这个文章了解Python中的运算符。结论三元运算符是在单行中编写简单if/else语句的简洁方法。语法:如果条件为false,则为true_value .三元运算符包括:条件真值False值可以使用三元运算符分配变量。三元运算符比简单的if/else语句更短,可读性更强。我们还可以通过以下方式实现三元运算符:多元组列表字典Lambda函数我们可以通过链接三元运算符来嵌套它们,以编写复杂的if/else语句。这会损害可读性,应该避免。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2024-12-26 13:06 , Processed in 0.619865 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表