广安门内网站建设wordpress头像禁用
本文基于python3。
 
目录
- 1、三目运算语句的定义
 - 2、三目运算语句:包含逻辑运算符 (and、or、not)
 - 1、 包含 and
 - 2、包含 or
 - 3、包含 not
 - 4、包含 and、or、not
 
- 3、三目运算语句:使用多个if ... else ...形式
 - 4、三目运算语句:在列表(list)中使用
 
1、三目运算语句的定义
先看一下三目运算语句的定义。
当条件为真时计算的表达式   if   条件   else    当条件为假时计算的表达式
 
直接看实例:
a = 1
result = 'AAA' if a % 2 == 0 else 'BBB'
print(result)    # BBBa = 2
result = 'AAA' if a % 2 == 0 else 'BBB'
print(result)    # AAA
 
再简写就是这样:
a = 1
print('AAA') if a % 2 == 0 else print('BBB')     # BBBa = 2
print('AAA') if a % 2 == 0 else print('BBB')     # AAA
 
三目运算符其实就等价于if语句。
 因此上面的语句等价于下面这个if 语句:
a = 1if a % 2 == 0:print('AAA')
else:print('BBB')
 
在if条件语句中条件里可以存在 and、or、not。
 那么同样的,三目运算语句中条件也可以存在 and、or、not。
2、三目运算语句:包含逻辑运算符 (and、or、not)
直接看实例:
1、 包含 and
a = -2
print('AAA') if a < 0 and a % 2 == 0 else print('BBB')     # AAAa = -1
print('AAA') if a < 0 and a % 2 == 0 else print('BBB')     # BBB
 
就等价于下面这个if 语句:
a = -1if a < 0 and a % 2 == 0:print('AAA')
else:print('BBB')
 
2、包含 or
a = 1
result = 'AAA' if a > 0 or a % 2 == 0 else 'BBB'
print(result)    # AAAa = -1
result = 'AAA' if a > 0 or a % 2 == 0 else 'BBB'
print(result)    # BBB
 
就等价于下面这个if 语句:
a = -1if a > 0 or a % 2 == 0:print('AAA')
else:print('BBB')
 
3、包含 not
a = -1
result = 'AAA' if not(a > 0) or a % 2 == 0 else 'BBB'
print(result)    # AAAa = 2
result = 'AAA' if not(a > 0) or a % 3 == 0 else 'BBB'
print(result)    # BBB
 
就等价于下面这个if 语句:
a = -1if not(a > 0) or a % 2 == 0:print('AAA')
else:print('BBB')
 
4、包含 and、or、not
a = -2
result = 'AAA' if not(a > 0) and a % 2 == 0 or a == -1 else 'BBB'
print(result)    # AAAa = 2
result = 'AAA' if not(a > 0) and a % 2 == 0 or a == -1 else 'BBB'
print(result)    # BBB
 
就等价于下面这个if 语句:
a = -1if not(a > 0) and a % 2 == 0 or a == -1:print('AAA')
else:print('BBB')
 
3、三目运算语句:使用多个if … else …形式
使用多个if … else …形式的语句也可以用三目运算语句写出来。
a = 2
result = 'negative' if a < 0 else 'positive' if a > 0 else 'zero'
print(result)
# positivea = 0
result = 'negative' if a < 0 else 'positive' if a > 0 else 'zero'
print(result)
# zeroa = -2
result = 'negative' if a < 0 else 'positive' if a > 0 else 'zero'
print(result)
# negative
 
就等价于下面这个if 语句:
if a < 0:print('negative')
else:if a > 0:print('positive')else:print('zero')
 
可以看到,可读性很差。请不要大量使用。
 不过如果能配合小括号得话,应该会好很多。不过还是不推荐。
a = -2
result = 'negative' if a < 0 else ('positive' if a > 0 else 'zero')
print(result)
# negative
 
4、三目运算语句:在列表(list)中使用
三目运算语句是可以在列表中使用的。
 直接看实例:
TestList = [i * 10 if i % 2 == 0 else i for i in range(10)]
print(TestList)
# [0, 1, 20, 3, 40, 5, 60, 7, 80, 9]
 
看起来有点儿复杂,我们先换成正常的语句,你一看就懂。
TestList = []
for i in range(10):if i % 2 == 0:TestList.append(i * 10)else:TestList.append(i)
print(TestList)
# [0, 1, 20, 3, 40, 5, 60, 7, 80, 9]
 
用这种方法用于处理列表的奇偶位置的数据不同的时候,会方便。
 具体的原理其实利用的是Python中的:列表推导式(generator expression)
 详情请参考:列表推导式
以上就是三目运算语句的用法。
如果有问题,请指出,或者copy了谁的,也请指出。
 会及时更正。
