python 三元条件判断的3种实现方法

发布时间:2019-09-17 07:49:59编辑:auto阅读(1765)

    python 三元条件判断的3种实现方法
    C语言中有三元条件表达式,如 a>b?a:b,Python中没有三目运算符(?:),但Python有它自己的方式来实现类似的功能。这里介绍3种方法:
    1》true_part if condition else false_part
    a,b=2,3
    c=a if a>b else b
    >>> print c
    3

    a,b=2,1
    c=a if a>b else b
    >>> print c
    2

    2》利用and-or条件判断的特性来实现三元条件判断
    首先介绍一下,and和or的用法:
    python 中的and从左到右计算表达式,若所有值均为真,则返回最后一个值,若存在假,返回第一个假值。
    无论是列表,元组还是字符串,空表示False,非空表示True
    >>> 'python' and [] and (2,3)
    []
    >>> 'python' and [2,3] and (3,4)

    (3, 4)


    or 也是从左到右计算表达式,则返回第一个为真的值,若均为假,则返回最后一个值。
    >>> 'python' or [3,4] or ()
    'python'
    >>> '' or [] or ()

    ()


    然后,我们利用and-or条件判断的特性来实现三元条件判断:
    a,b=2,1
    c = (a>b and [a] or [b])[0]
    >>> print c
    2

    3》使用列表
    a,b=2,7
    c = [b,a][a>b]
    >>> print c
    7
    分析:若a>b为真,由于真用1表示,因此相当于c=[b,a][1],即c=a
          若a>b为假,由于假用0表示,因此相当于c=[b,a][0],即c=b
    >>> int(False)
    0
    >>> int(True)
    1

    (完)

关键字