逻辑运算符
逻辑运算的返回值也是bool值
and : 与,前后两个操作数必须都是True才返回True;否则返回False ,
or:或,只要两个操作数中有一个是True,就可以返回True;否则返回False。
not :非, 只需要一个操作数,如果操作数为True,则返回False;如果操作数为False,则返回True 。
# 直接对False求非运算,将返回True
print(not False)
# 5>3返回True,20.0大于10,因此结果返回True
print(5 > 3 and 20.0 > 10)
# 4>=5返回False,"c">"a"返回True。求或后返回True
print(4 >= 5 or "c" > "a")
需求:购买一本书名必须以“python”结尾的图书,且图书价格小于50元或该图书是基于正式版的。
bookName = "疯狂Python"
price = 79
version = "正式版"
if bookName.endswith('Python') and (price < 50 or version == "正式版") :
print("打算购买这本Python图书")
else:
print("不购买!")
对于组合逻辑来说,使用圆括号保证运算顺序非常重要。
三目运算
通过if 语句来实现三目运算符的功能,作为三目运算符的ifi吾句的语法格式如下:
True_statements if expression else False_statements
三目运算的计算规则:先对逻辑表达式expression求值,
如果逻辑表达式返回true,则执行并返回true statements的值;
如果逻辑表达式返回False,则执行并返回False_statements的值。
a = 2
b = 3
st = "a大于b" if a > b else "a不大于b"
# 输出"a大于b"
print(st)
也可以改成如下形式:
# 输出"a大于b"
print("a大于b") if a > b else print("a不大于b")
三目运算符支持嵌套,Python 允许在三目运算符的True_statements 或False_statements 中放置多条语。
c = 5
d = 5
# 下面将输出c等于d
print("c大于d") if c > d else (print("c小于d") if c < d else print("c等于d"))
目前支持以下两种放置方式:
多条语句以英文逗号隔开:每条语句都会执行,程序返回多条语句的返回值组成的元组。
多条语句以英文分号隔开:每条话句都会执行,程序只返回第一条语句的返回值。
in运算符
用于判断某个成员是否位于序列中,Python也提供了in的反义词:not in
s = 'crazyit.org'
print('it' in s) # True
print('it' not in s) # False
print('fkit' in s) # False
print('fkit' not in s) # True
in判断字符串是否包含特定字串,判断序列是否包含子序列
运算符的结合性和优先级