详解Python中三元运算符的使用

 更新时间:2023年09月05日 08:56:23   作者:python收藏家  
条件表达式(有时称为“三元运算符”)在所有Python操作中优先级最低,三元运算符根据条件为真或假来计算某些东西,下面就跟随小编一起来看看Python中三元运算符的具体使用吧

条件表达式(有时称为“三元运算符”)在所有Python操作中优先级最低。三元运算符根据条件为真或假来计算某些东西。
它只允许在单行中测试条件,取代多行if-else,使代码紧凑。

语法:

[on_true] if [expression] else [on_false] 
expression : conditional_expression | lambda_expr

使用三元运算符的简单方法

# Program to demonstrate conditional operator
a, b = 10, 20
# Copy value of a in min if a < b else copy b
min = a if a < b else b
print(min)

输出

10

说明:表达式min用于根据给定条件打印a或b。例如,如果a小于b,则输出是a,如果a不小于b,则输出是b。

使用元组、字典和lambda

# Python program to demonstrate ternary operator
a, b = 10, 20
# Use tuple for selecting an item
# (if_test_false,if_test_true)[test]
# if [a<b] is true it return 1, so element with 1 index will print
# else if [a<b] is false it return 0, so element with 0 index will print
print( (b, a) [a < b] )
# Use Dictionary for selecting an item
# if [a < b] is true then value of True key will print
# else if [a<b] is false then value of False key will print
print({True: a, False: b} [a < b])
# lambda is more efficient than above two methods
# because in lambda  we are assure that
# only one expression will be evaluated unlike in
# tuple and Dictionary
print((lambda: b, lambda: a)[a < b]())

输出

10
10
10

三元运算符可以写成嵌套的if-else

# Python program to demonstrate nested ternary operator
a, b = 10, 20
print ("Both a and b are equal" if a == b else "a is greater than b"
        if a > b else "b is greater than a")

上述方法可以写成:

a, b = 10, 20
if a != b:
    if a > b:
        print("a is greater than b")
    else:
        print("b is greater than a")
else:
    print("Both a and b are equal")

输出

 b is greater than a

在三元运算符中使用print函数

示例:在python中使用三元运算符查找2者较大的数

a=5
b=7
# [statement_on_True] if [condition] else [statement_on_false]
print(a,"is greater") if (a>b) else print(b,"is Greater")

输出

7 is Greater

注意事项:

首先对给定的条件求值(a < b),然后根据条件返回的布尔值返回a或b

操作符中参数的顺序与其他语言(如C/C++)不同。

条件表达式在所有Python操作中具有最低的优先级。

使用for循环

要在for循环中使用三元运算符,可以按照以下步骤操作:

使用for语句循环要计算的数据。

使用三元运算符计算数据中的每个元素。

打印每个元素的三元运算符的结果。

在下例中,要评估的数据存储在称为data的列表中。for语句用于循环遍历列表中的每个元素。三元运算符用于确定每个数字是偶数还是奇数。三元运算符的结果存储在名为result的变量中。print()语句用于打印列表中每个元素的三元运算符的结果。

# Define the data to be evaluated
data = [3, 5, 2, 8, 4]
# Use a for loop to evaluate each element in the data
for num in data:
    # Use the ternary operator to determine if the number is even or odd
    result = 'even' if num % 2 == 0 else 'odd'
    # Optionally, print the result of the ternary operator for each element
    print(f'The number {num} is {result}.')

输出

The number 3 is odd.
The number 5 is odd.
The number 2 is even.
The number 8 is even.
The number 4 is even.

代码定义了一个称为data的整数列表。然后它使用for循环遍历列表中的每个元素。对于每个元素,它使用三元运算符来检查它是偶数还是奇数,并将结果保存到名为result的变量中。然后,代码可选地打印每个元素的三元运算符的结果。

到此这篇关于详解Python中三元运算符的使用的文章就介绍到这了,更多相关Python三元运算符内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python使用PyAV提取视频关键帧的实践

    Python使用PyAV提取视频关键帧的实践

    本文主要介绍了Python使用PyAV提取视频关键帧的实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • keras做CNN的训练误差loss的下降操作

    keras做CNN的训练误差loss的下降操作

    这篇文章主要介绍了keras做CNN的训练误差loss的下降操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • Pytorch配置GPU环境方式

    Pytorch配置GPU环境方式

    这篇文章主要介绍了Pytorch配置GPU环境方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • 浅谈python socket函数中,send与sendall的区别与使用方法

    浅谈python socket函数中,send与sendall的区别与使用方法

    下面小编就为大家带来一篇浅谈python socket函数中,send与sendall的区别与使用方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • 详解【python】str与json类型转换

    详解【python】str与json类型转换

    这篇文章主要介绍了【python】str与json类型转换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • python中response.text 和response.content的区别详解

    python中response.text 和response.content的区别详解

    这篇文章主要介绍了python中response.text 和response.content的区别详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • keras中的卷积层&池化层的用法

    keras中的卷积层&池化层的用法

    这篇文章主要介绍了keras中的卷积层&池化层的用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • Python函数式编程

    Python函数式编程

    函数式编程Functional Programming,虽然也可以归结到面向过程的程序设计,但其思想更接近数学计算。函数式编程就是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量。
    2017-07-07
  • python tkinter与Mysql数据库交互实现账号登陆

    python tkinter与Mysql数据库交互实现账号登陆

    本文主要介绍了python tkinter与Mysql数据库交互实现账号登陆,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • 利用Python写个简易版星空大战游戏

    利用Python写个简易版星空大战游戏

    通过小编观察,大家好像对划水摸鱼是情有独钟啊。所以本文给大家带来了一个用Python编写的简单版的星空大战小游戏,感兴趣的小伙伴可以动手试一试
    2022-03-03

最新评论