📜  Python中的三元运算符

📅  最后修改于: 2020-01-13 17:41:39             🧑  作者: Mango

三元运算符也称为条件表达式,是根据条件为true或false评估某些内容的运算符。它是在2.5版中添加到Python中的。
它仅允许在单行中测试条件,从而替换多行if-else,从而使代码紧凑。
语法 :三元运算符也称为条件表达式,是根据条件为true或false评估某些内容的运算符。它是在2.5版中添加到Python中的。
它仅允许在单行中测试条件,从而替换多行if-else,从而使代码紧凑。
[Best_Wordpress_Gallery id=”1″ gal_title=”All images”]
语法 :

[on_true] if [expression] else [on_false]
  1. 使用三元运算符的简单方法: 
    # Program程序展示使用三元运算符
    a, b = 10, 20
    # 如果a < b ,把a的值复制到min,否则赋值b到min
    min = a if a < b else b
    print(min)

    输出:

    10
  2. 使用元组,字典和lambda的直接方法
    # Python 程序展示使用三元运算符
    a, b = 10, 20
    # 使用tuple进行选择
    print( (b, a) [a < b] )
    # 使用字典进行选择
    print({True: a, False: b} [a < b])
    # lamda运算会更加高效灵活
    print((lambda: b, lambda: a)[a < b]())

    输出:

    10
    10
    10
  3. 三元运算符可以写为嵌套的if-else
    # Python展示嵌套三元运算符
    a, b = 10, 20
    print ("a=b" if a == b else "a大于b"
            if a > b else "b大于a")

    上面的方法可以写成:

    # Python展示嵌套三元运算符
    a, b = 10, 20
    if a != b:
        if a > b:
            print("a大于b")
        else:
            print("b大于a")
    else:
        print("a等于b")

    输出:

    b大于a

重要事项:

  • 首先评估给定条件(a
  • 运算符中参数的顺序与C / C++等其他语言不同;
  • 在所有Python操作中,条件表达式的优先级最低;

在不存在三元运算符的情况下,
2.5之前使用的方法在类似于以下给出的表达式中,解释器将检查该表达式是否为true,然后评估on_true,否则评估on_false。
语法 :

'''当条件是True, 表达式:[on_false]
   不会执行并且"True and [on_true]"
   会被返回.  else:内容哦 "False or [on_false]"
   被返回.
   注意: "True and x" 等效于 x.
   "False or x" 等效于 x. '''
[expression] and [on_true] or [on_false]

范例:

# Python代码,展示如何使用运算符
a, b = 10, 20
# 若a小于 b, 则a被赋值
# 否则b被赋值 (注意 : 若a=0,程序不工作)
min = a < b and a or b
print(min)

输出:

10