Python 可通过 if 语句来实现三目运算的功能, 因此可以近似地把这种 if 语句当成三目运算符. 作为三目运算符的 if 语句的语法格式如下:
(True_statements) if (expression) else (False_statements)
三目运算的规则是: 先对逻辑表达式 expression 求值, 如果逻辑表达式返回 True, 则执行并返回 True_statements 的值; 如果逻辑表达式返回 False, 则执行并返回 False_statements 的值.
举个栗子:
- >>> isinput = True if input('input:') else False
- input: 996ICU
- >>> isinput
- True
- >>> isinput = True if input('input:') else False
- input:
- >>> isinput
- False
三目运算简化写法:
变量 = 值 1 or 值 2 类似于变量 = 值 1 if 值 1 else 值 2
再来个栗子:
- >>> content = input('input:') or 'nothing'
- input: 996ICU
- >>> content
- '996ICU'
- >>> content = input('input:') or 'nothing'
- input:
- >>> content
- 'nothing'
应用在 print 函数:
- a = 996
- b = 666
- str_ = '996' if a <b else '666'
- print(str_)
- print('996' if True else 'icu')
- print('996') if False else print('icu')
- 666 996 icu
Python 允许在三目运算符的 True_statements 或 False_statements 中放置多条语句.
Python 主要支持以下两种放置方式:
1. 多条语句以英文逗号隔开: 每条语句都会执行, 程序返回多条语句的返回值组成的元组.
- >>> str_ = print('996'), 'True' if 5> 0 else 'False', 'icu'
- 996
- >>> str_
- (None, 'True', 'icu')
2. 多条语句以英文分号隔开: 每条语句都会执行, 程序只返回第一条语句的返回值.
- >>> str_ = 'icu'; st = 'True' if 5> 10 else print('ICU')
- ICU
- >>> str_
- 'icu'
- >>> print(st)
- None
嵌套三目运算
- print('aaa') if True else (print('bbb') if False else print('ccc'))
- print('aaa') if False else (print('bbb') if False else print('ccc'))
- aaa ccc
来源: https://www.cnblogs.com/malinqing/p/11285978.html