一、变量、常量
- 变量:值可以动态变化的量
- 常量:值不会发生变化,如 π 、e
二、表达式和运算符
表达式:由变量常量运算符组成的式子称为表达式
运算符
print(2 + 3) # 加
print(2 - 3) # 减
print(2 * 3) # 乘
print(2 / 3) # 除
- 整除和取余
@整除 // 返回商
@取余 % 返回余数
print(2 // 3) # 整除
print(2 % 3) # 取余
print(2 ** 3)
'''
+= 加法赋值运算符
-= 减法赋值运算符
*= 乘法赋值运算符
/= 除法赋值运算符
**= 平方赋值运算符
//= 整除赋值运算符
%= 取余运算符
'''
# 以加法为例
a = 1
a += 2
print(a)
- 位运算符:对二进制进行运算
& 按位与运算符:参与运算的两个值(先化为二进制),如果两个相应位都为1,则该位1,否则为0
| 按位或运算符:参与运算的两个值,如果两个相应位只要有一个为1则都为1,否则为0
^ 按位异或运算符:参与运算的两个值,如果两个相应位有且只有一个为1则都为1,否则为0
~ 按位取反运算符
左移运算符<< :将数据的二进制数左移x位
右移运算符>> :将数据的二进制数右移x位
a = 5 # 0000 0101
b = 7 # 0000 0111
print(a & b) # 0000 0101 5
print(a | b) # 0000 0111 7
print(a ^ b) # 0000 0010 2
print(~a) # 0000 1010 -6
print(a << 2) # 0000 0101 ---> 0001 0100
print(a >> 2) # 0000 0101 ---> 0000 0001
'''
等于== :比较两个对象是否相等,相等返回True,不等返回False
不等于!= :比较两个对象是否不等,不等返回True,相等返回False
大于> :a>b 如果a大于b,返回True,否则返回False
小于< :a<b 如果a小于于b,返回True,否则返回False
大于等于>= :a>=b 如果a大于等于b,返回True,否则返回False
小于等于<= :a<=b 如果a小于等于b,返回True,否则返回False
'''
a = 5
b = 7
print(a == b)
print(a != b)
print(a > b)
print(a < b)
print(a >= b)
print(a <= b)
'''
x与y 分别为可以返回Boolean的表达式或本身就是Boolean
and 逻辑与:x and y 只有x y 都为True,整体才为Ture,否则为False;x 为False,不会执行y
or 逻辑或:x or y 只要x y 有一个为True ,整体为Ture,否则为False;
x为True,不执行y;x 为False,才会执行y
not 逻辑非:将原来的状态取反,True变False,False变Ture
'''
- 成员运算符
in 如果能在指定范围找到值,返回True,否则返回False
not in 如果不能在指定范围找到值,返回True,否则返回False
list = [1,2,3]
print(1 in list) # True
print(4 not in list) # False
- 身份运算符
is 判断两个标识符是否引用同一对象,如果引用同一对象,返回Ture,否则返回False
not is 判断两个标识符是否引用同一对象,如果不是引用同一对象,返回Ture,否则返回False
a = [1,2,3]
b = [1,2,3]
print(id(a))
print(id(b))
print(a is b)
b = a
print(id(a))
print(id(b))
print(a is b)
注:这段代码涉及到深浅拷贝和赋值引用的问题,后续会总结
附:运算符优先级