Python 进阶之术 三元运算符

简介: Python 进阶之术 三元运算符

" 本文字数:578 字 ||

阅读时间1.5

分钟 "


三元运算符


三元运算符通常在Python⾥被称为条件表达式


这些表达式基于真(true)/假(not)的条件判 断


在Python 2.4以上才有了三元操作。


下⾯是⼀个伪代码和例⼦:

伪代码:


# 如果条件为真,返回真 否则返回假 
condition_is_true if condition else condition_is_false


例⼦:


is_fat = True
state = "fat" if is_fat else "not fat"


它允许⽤简单的⼀⾏快速判断,⽽不是使⽤复杂的多⾏ if 语句。


这在⼤多数时候⾮常有 ⽤,⽽且可以使代码简单可维护


另⼀个⽤法⽐较少见,它使⽤了元组,请继续看:


伪代码:


#(返回假,返回真)[真或假]
(if_test_is_false, if_test_is_true)[test]


例⼦:


fat = True
fitness = ("skinny", "fat")
[fat]print("Ali is ", fitness)
#输出: Ali is fat


这之所以能正常⼯作,是因为在Python中,True等于1,⽽False等于0,


这就相当于在元组 中使⽤0和1来选取数据。 


上⾯的例⼦没有被⼴泛使⽤,因为没有Python味⼉ (Pythonic)。


这样的⽤法很容易把真正的数据与 True / False 弄混。


另外⼀个不使⽤元组条件表达式的缘故是因为在元组中会把两个条件都执⾏,


⽽ if - else 的条件表达式不会这样。


例如:


condition = True
print(2 if condition else 1/0)
#输出: 2


    print((1/0, 2)[condition])
    #输出ZeroDivisionError异常


    这是因为在元组中是先建数据,然后⽤True(1)/False(0)来索引到数据。

    ⽽ if - else条件表 达式遵循普通的 if - else 逻辑树, 因此,如果逻辑中的条


    件异常,或者是重计算型(计 算较久)的情况下,最好尽量避免使用元组条

    件表达式。

    相关文章
    |
    3天前
    |
    Python
    【Python进阶(五)】——模块搜索及工作目录
    【Python进阶(五)】——模块搜索及工作目录
    |
    3天前
    |
    Python
    【Python进阶(三)】——面向对象编程
    【Python进阶(三)】——面向对象编程
    |
    3天前
    |
    Python
    【Python进阶(一)】——异常与错误
    【Python进阶(一)】——异常与错误
    |
    1天前
    |
    Python
    空间管理大师已上线!(2),Python高级工程师进阶学习】
    空间管理大师已上线!(2),Python高级工程师进阶学习】
    |
    3天前
    |
    Python
    Python 三元条件运算符
    Python 三元条件运算符
    8 0
    |
    3天前
    |
    Python 索引 C语言
    Python3从零基础到入门(2)—— 运算符-3
    Python3从零基础到入门(2)—— 运算符
    |
    3天前
    |
    Python
    Python3从零基础到入门(2)—— 运算符-2
    Python3从零基础到入门(2)—— 运算符
    Python3从零基础到入门(2)—— 运算符-2
    |
    3天前
    |
    Python C语言 存储
    Python3从零基础到入门(2)—— 运算符-1
    Python3从零基础到入门(2)—— 运算符
    Python3从零基础到入门(2)—— 运算符-1
    |
    3天前
    |
    数据可视化 数据挖掘 数据处理
    【Python进阶(七)】——Series数据结构
    【Python进阶(七)】——Series数据结构
    |
    3天前
    |
    Python
    【Python进阶(六)】——随机数与数组
    【Python进阶(六)】——随机数与数组