1. 算数运算符
- +
str1 = '姓'
str2 = '名'
name = str1 + str2 # 结果 '姓名'
- -
- *
str_num = '10' * 2 # 结果 '1010'
str_multiply = '姓名' * 2 # 结果 '姓名姓名'
- /
- // -> 取整除
whole = 9 // 2 # 结果 4
- % -> 取模
- ** -> 幂 -> 返回x的y次幂
power = 2**3 # 结果 8 (2 × 2 × 2 = 8)
3. 比较运算符
- ==
a = 21
b = 10
if ( a == b ):
print ("a 等于 b")
else:
print ("a 不等于 b")
- !=
a = 21
b = 10
if ( a != b ):
print ("a 等于 b")
else:
print ("a 不等于 b")
- >
a = 21
b = 10
if ( a > b ):
print ("a 大于 b")
else:
print ("a 小于 b")
- <
a = 21
b = 10
if ( a < b ):
print ("a 小于 b")
else:
print ("a 大于 b")
- >=
a = 21
b = 10
if ( a >= b ):
print ("a 大于等于 b")
else:
print ("a 小于 b")
- <=
a = 21
b = 10
if ( a <= b ):
print ("a 小于等于 b")
else:
print ("a 大于 b")
2. 赋值运算符
- == / != 和 is / is not 的区别:
- == / != 是判断两个变量的值是否一致或不一致
- is / is not 是判断两个变量所引用的对象是否一致或不一致(即: 判断两个变量的内存地址是否一致或不一致)
- =
a = 1
print(a) # 1
- +=
a = 1
a += 2
print(a) # 3
- -=
a = 3
a -= 1
print(a) # 2
- *=
a = 3
a *= 2
print(a) # 6
- /=
a = 10
a /= 5
print(a) # 2.0
- %=
a = 4
a %= 3
print(a) # 1
3. 逻辑运算符
- 逻辑运算符
- and
- or
- not
- 优先级
- () > not > and > or
print(2 > 1 and 1 < 4 or 2 < 3 and 9 > 6 or 2 < 4 and 3 < 2) # 结果: True
- not
- 布尔取反 -> 相当于 js 中 !
lis = []
boolean = ''
if not lis:
boolean = True
else:
boolean = False
print(boolean) # True
- 数字的比较
or: x or y 如果 x != 0 y != 0 则返回 x -> 当 x 为 true y 为 ture 返回 x
x or y 如果 x = 0 y != 0 则返回 y -> 当 x 为 false 直接返回 y
print(1 or 2) # 1
print(3 or 2) # 3
print(0 or 2) # 2
print(0 or 100) # 100
and: x and y 如果 x != 0 y != 0 则返回 y
x and y 如果 x != 0 y = 0 则返回 y
x and y 如果 x = 0 y != 0 则返回 x
and: 如果第一个参数为False直接返回第一个参数,不考虑 and 后面的参数
print(1 and 2) # 结果: 2
print(2 and 0) # 结果: 0
print(0 and 2) # 结果: 0
- 其他使用方法
- 和 js 中的 || 用法一样
b = None
a = b or []
print(a) # []
- 面试题 从优先级的角度考虑
print(3 > 1 or 2 and 2) # 结果: True
4. 成员运算符
- in -> 判断某个值是否在指定的序列中
a = 10
l = [1, 2, 3, 4, 5 ];
if ( a in list ):
print ("变量 a 在给定的列表中 list 中")
else:
print ("变量 a 不在给定的列表中 list 中")
- not in -> 判断某个值是否不在指定的序列中
a = 10
l = [1, 2, 3, 4, 5 ];
if ( a not in list ):
print ("变量 a 不在给定的列表中 list 中")
else:
print ("变量 a 在给定的列表中 list 中")
5. 身份运算符
- == / != 和 is / is not 的区别:
- == / != 是判断两个变量的值是否一致或不一致
- is / is not 是判断两个变量所引用的对象是否一致或不一致(即: 判断两个变量的内存地址是否一致或不一致)
- is 判断两个变量所引用的对象是否一致(即: 判断两个变量的内存地址是否一致)
a = 20
b = 20
if ( a is b ):
print ("1 - a 和 b 有相同的标识")
else:
print ("1 - a 和 b 没有相同的标识")
if ( id(a) == id(b) ):
print ("2 - a 和 b 有相同的标识")
else:
print ("2 - a 和 b 没有相同的标识")
- is not 判断两个变量所引用的对象是否不一致(即: 判断两个变量的内存地址是否不一致)
a = 20
b = 30
if ( a is b ):
print ("3 - a 和 b 有相同的标识")
else:
print ("3 - a 和 b 没有相同的标识")
if ( a is not b ):
print ("4 - a 和 b 没有相同的标识")
else:
print ("4 - a 和 b 有相同的标识")