Python-2.2-运算符
- 运算符
- 算术运算符
- 比较运算符
- 赋值运算符
- 逻辑运算符
- 成员运算符
- 身份运算符
- 运算符优先级问题
运算符
- 由一个以上的值经过一系列的运算得到新值的过程就叫运算
- 用来操作运算的符号叫运算符
- 运算符分类
- 算术运算符
- 比较或者关系运算符
- 赋值运算符
- 逻辑运算符号
- 位运算(二进制)
- 成员运算符
- 身份运算符
- 表达式
- 由一个或几个数字或者变量或者运算符合成第一行代码
- 通常返回一个结果
#表达式案例
a = 1 + 2
算术运算符
- 用来进行算术运算的符号
- 通常用来表示加减乘除
- 加(+)
- 减(-)
- 乘(*)
- 两个乘号就是指数
- 除
- 正常除法(/)
- 地板除(//)
- 取余(%)
- python没有自增自减
#算术运算符
#加减乘跟数学意义基本一致
#加法
a = 1 + 1
print(a)
#减法
b = 9 - 1
print(b)
#乘法
c = 8 * 2
print(c)
d = 3 ** 2
print(d)
#python除法分为普通除法,地板处,取余
#正常除法
a = 9 / 2
print(a)
#地板除,取整
b = 9 // 2
print(b)
#取余
c = 9 % 2
print(c)
2
8
16
4.5
4
1
比较运算符
- 对两个内容进行比较的运算符
- 结果一定是布尔值,即True/False
# 等于 ==
a = 1==2
print(a)
# 不等于
a = 1 != 2
print(a)
#其他符号
# > , >= ,< , <=
print(1 >= 2)
False
True
False
赋值运算符
- 把一个值放到变量
- 赋值符号:=
- 复杂赋值
- 赋值的缩写
- 所有的数学运算符都可以缩写
- += , -= , * = , /= , //= , %= , * *= , 都是缩写
- python里面没有 ++ ,–
# 赋值符号 =
a = 9
# 复杂赋值
a = b = 9
a , b = 1 , 2
# 赋值的缩写
cc = 7
cc = cc + 2
print(cc)
# 注意下面符号仅仅是一个缩写
dd = 2
dd += 2 # dd=dd+2
print(dd)
9
4
逻辑运算符
- 对布尔类型变量或者值进行运算的符号
- and :逻辑与
- or :逻辑或
- not :逻辑非
- python里面的逻辑运算没有异或
- 运算规则 :
- and看做乘法,or看作加法
- True看做1,False看做0
- 则逻辑运算就能转换成整数数学运算
- 最后结果如果是0则False,否则为True
- 布尔值跟数字的转换
- 数字转换成布尔值的时候
- 0 = False , 其余是 True
- 布尔值转换成数字的时候
- True = 1 , False = 0
- 逻辑运算的短路问题
- 逻辑运算式,按照运算顺序计算,一旦能够确定整个式子未来的值,则不再进行计算,直接返回
# 逻辑表达举例
a = True
b = True
c = False
aa = a and b #左边表达式可转换成 1 * 1
print(aa)
bb = a and c
print(bb)
cc = 100 and c
print(cc)
#短路问题案例1
a = True
b = True
c = False
aa = a or c and (a and b) #转换成算术 1 + 。。。。。。。
print(aa)
True
False
False
True
# 短路问题案例2
def a():
print('a')
return True
def b():
print('b')
return True
aaa = a() and b()
print(aaa)
#字符串乘以数字,表示对这个字符串重复多少遍
print("*" * 20)
bbb = a() or b() #短路发生
print(bbb)
a
b
True
a
True
成员运算符
- 用来检测一个值或者变量是否在某个集合里面
- in : 成员运算符
- not in : 不在里面
# in 案例
a = [number * 1 for number in range(10)]
b = 10
bb = b in a
print(bb)
# not in 案例
a = [number * 1 for number in range(10)]
b = 10
bb = b not in a
print(bb)
False
True
身份运算符
- 用来确定两个变量是否为同一值
- is : 变量运算符
- is not :不是
- 对整数N \in [-5,256],解释器对他们做了单独的处理,放进了固定的内存中,不因你每次运行而改变
# is案例
a = 1
b = 1000989888
aa = a is b
print(aa)
#a,b仅仅是值一样,并不代表a,b是一个变量
a = 1000989888
b = 1000989888
aa = a is b
print(aa)
#正确理解下面案列跟上面案例的不同
#对于数字比较小的时候,python将不会开辟新的内存存储
# -5到256之间
a = 5
b = 5
ab = a is b
print(ab)
False
False
True
运算符优先级问题
- 小括号具有最高优先级
** 指数 (最高优先级)
~ + - 按位翻转,一元加号和减号(最后两个的方法名为+@和-@)
*/ % // 乘,除,取模和取整数
- + - 加法减法
>> << 右移,左移运算符
& 位‘AND’
| 位运算符
<= < > >= 比较运算符
<> == != 等于运算符
= %= /= //= -= += *= **= 赋值运算符
is , is not 身份运算符
in , not in 成员运算符
not , or , and 逻辑运算符