算术运算
# 1. 加 +
a = 1 + 4.5
# 2. 减 -
b = 2 - 3
# 3. 乘 *
c = 2 * 3
# 4. 除 /
d = 3 / 4
# 5. 整除 //
e = 3 // 4 # 等价于int(3/4)
# 6. 求幂 **
f = 3 ** 2
# 7. 取模
g = 3 % 2
# 8. +=
a += 3 # 等价于 a = a + 3
# 9. -=
a -= 3 # 等价于 a = a - 3
# 10. *=
a *= 2 # 等价于 a = a * 2
# 11. /=
a /= 2 # 等价于 a = a / 2
# 12. //=
a //= 2 # 等价于 a = a // 2
# 13. **=
a **= 2 # 等价于 a = a ** 2
# 14. %=
a %= 4 # 等价于 a = a % 4
比较运算
比较运算符结果为bool类型的值。
a = 1
b = 2
# 1. 大于 >
a > b # False
# 2. 小于 <
a < b # True
# 3. 等于 ==
a == b # False
# 4. 不等于 !=
a != b # True
# 5. 大于等于 >=
a >= b # False
# 6. 小于等于 <=
a <= b # True
并列比较
对于诸如a>b>c
这类的并列比较运算,在cpp或java中会被解释为(a>b)>c
,即前面一个比较运算的布尔结果用于作为后一个比较的左操作数,这不符合数学运算规则。但python中则会将其解释为a>b and b>c
,符合数学运算规则。
逻辑运算
用于布尔值之间的运算。
# 1. 与 and
2 > 1 and 3 > 2 # True
# 2. 或 or
2 > 4 or 6 > 3 # True
# 3. 非 not
not 3 > 4 # True
短路
对于与或运算,当第一个子表达式即可确定表达式结果时,则并不会对第二个子表达式进行运算,这被称之为短路。在短路的情况下,即便第二个子表达式存在逻辑错误,也不影响程序执行。
a = 3 > 2 or 3 // 0
# 显然第二个子表达式3//0出现除数为零的异常
# 第一个子表达式即可确定整个逻辑运算的真值
# 故程序并不会执行第二个子表达式,程序正常运行,a得到True
集合运算
对于集合数据类型,python支持数学上集合的特殊运算,如交、差、并等。
set1 = {1,3,4,5,6}
set2 = {2,3,6,7,9}
# 1. 交 &
set3 = set1 & set2
# 2. 并 |
set4 = set1 | set2
# 3. 差 -
set5 = set1 - set2
# 4. 异或 ^
set6 = set1 ^ set2
特殊运算
容器元素个数-len
len(lis)
用于求容器中元素的个数。
st = {1,2,3,4,5}
size = len(st)
地址判等-is
a is b
用于比较a和b的数据空间所在地址是否相同,即a和b是否是同一个东西。
lis = [1,2,3]
lis2 = lis
print(lis == lis2) # True,a与b元素数值均对应相同
print(lis is lis2) # True,a与b指向同一个数据空间
lis3 = lis[:]
print(lis == lis3) # True,a与b元素数值均对应相同
print(lis is lis3) # False,a与b指向两个不同的数据空间
除了用于判断元素是否是相同引用外,is
大多时候用于判断变量是否为None
,相较于==
可以有更高的效率。
a = None
if a is not None:
print("not")
包含关系判断-in
in
除了可以用于for
迭代,还可以用于判断某一元素是否包含于容器中。
lis = [1,2,3,4,5]
a = 3
if a in lis:
print("true")
通常,对于并列判等的条件语句也可以使用in
来简化。
a = int(input("请输入一个整数:"))
# 并列写法
if a == 3 or a == 5 or a == 7:
print("true")
# in简化写法
if a in [3,5,7]:
print("true")