第一种赋值运算符:
赋值运算符的逻辑:
name = 8
右边创造一个存储空间(有一个地址值),然后将地址值给了name,name指向了8的地址空间
name1 = name
将右边name的地址值给了左边name1的地址值,两个同时指向了8的地址空间
扩展的赋值运算符:
+=、-+、*=、/= (+= 系统可以自动识别是数字加还是字符串的连接操作)
当是数字进行赋值时:
name += 5
#name = name + 5 ---> name = 8 + 5 此处加号相当于数值运算操作
当是字符串进行赋值时:
adress = 'abc'
adress += 'fff'
#则结果是 ’abcfff‘ adress = adress + 'abc' 此处加号相当于连接操作
第二种算术运算符:
+、-、*、/、%(都会给最精确的数字,就是比如double)
对于乘法如果前面是字符串,则表示有n个字符串
print(‘qq’ * 5) #表示的就是连着的5个qq
扩展的类型有:
**、//
c = a ** b #表示将a 的 b 次幂给了c
c = a // b #表示a/b取整,也就是整除
第三种关系运算符:
is和==有区别,==是看值是否相等,而is是看是否为同一个对象,也就是地址值是否相等
is的注意点:
使用交互式时注意:
区分小整数池和大整数池
小整数的定义是: [-5, 256] 这些整数对象是提前建立好的,不会被垃圾回收。是可以复用的。
大整数的定义是:终端每执行一次,每次的大整数都重新创建
但使用Sublim或pycharm时,每次运行是所有代码都加载在内存中,属于一个整体,所以这个时候会有一个大整数对象池,即处于一个代码块的大整数是同一个对象。
#在交互式中当是大整数时:
>>> a = 1000
>>> b = 1000
>>> print(a is b)
False
>>> print(id(a),id(b))
2349883171952 2349883174640
#在Sublim中:
a = 1000
b = 1000
print(a is b)
print(id(a),id(b))
#结果为:True
#2560323989232 2560323989232
注意这里的区别
第四种逻辑运算符:
not、and、or
优先级:not>and>or
or:
如果x为True则返回x,如果x为False返回y值
and:
如果x为True则返回y值。如果x为False则返回y值。
第五种位运算符:
二进制、八进制、十六进制:
二进制,八进制,十六进制数在python中定义时,分别以0b,0o,0x打头
负数转换二进制,八进制,十六进制时:
先正数换算,然后取反,在加1
第六种三目运算符:
格式为:结果 if 表达式 else 结果
运算符顺序:
一般是:算术运算符>位运算符>关系运算符>逻辑运算符>赋值运算符