变量要有意义,可读性要强
变量名的规范:字母、数字、下划线
首字母不能是数字不能引入别的特殊符号保留关键字(系统关键字),不能用在变量名中变量的定义区分大小写变量本身是没有类型的深入变量
a = 1 b = a a = 3 print(b) # 结果:1\ b不会随啊的变化而变化 a = [1,2,3,4,5,6] b = a a[0] = "1" print(a) print(b) # 结果:["1",2,3,4,5,6],变量随a的变化而变化 type = 1 type(1) # 会报错,因为type被重新定义了 # 如果在下面用不到,那么就可以这么定义int:值类型2,list:引用类型3
区别:引用类型本身的值是可以改变的、值类型本身是不能改变的 b = "hello" id(b) b = "world" id(b) # 结果不一样,说明变得是地址列表的特性
a = [1,2,3] id(a) a[0] = "1" id(a) # 地址没有发生改变 a = (1,2,3) a[0] = 3 # 结果:报错,元组是不能修改的 b = [1,2,3] b.append(4) # 结果:[1,2,3,4] a.append(4) # 报错append()4
为什么有了列表还要有元组,因为有的数据希望别被改变
访问嵌套数据
a = (1,2,3,[1,2,4]) a[2] # 结果:3 a[3][2] # 结果:4 a[2] = 3 # 会报错 a[3][2] = 8 # 可以修改为什么元组中嵌套列表时,列表中的数据可以改变
算术运算符+ - * / // % **
赋值运算符= += *= /= //= **= %=
赋值运算符在于赋值,数值是会改变的比较(关系)运算符== != > < >= <=
返回一个bool值数字可以进行比较单字符也可以进行比较,比较是asscll字符串和字符串进行比较时,是逐个进行比较的列表,元组也可以进行关系运算逻辑运算符and or not
操作bool类型,返回结果都是bool类型
int float # 0表示False,非0表示Ture str # 空字符串为False,非空字符串表示Tureand or的返回是bool类型的数据,若为真的话返回的始终是非空的数据、若两个数据都是真,那么返回的数据是后面的数据
成员运算符in not in
一个元素是否在另一组元素中
a = 1 a in [1,2,3,4] # 结果:Ture字典的成员运算符5
b = "a" b in {"c":1} # 返回False b = 1 b in {"c":1} # 返回False b = "c" b in {"c":1} # 返回True身份运算符is is not
返回的也是bool值
关系运算符比较的是两个变量值是否相同,身份运算符是比较的两个数据的地址是否相同
类型的判断isinstance(指定参数,数据类型)
a = "acad" isinstance(a,str) # Ture isinstance(a,int) # False isinstance(a,(int,str,float)) # True对象的三大特征:身份(id)、数值(value)、类型(type)
位运算符& | ^ ~ << >>:把这个数值当做二进制进行运算
动态语言 ↩︎
不可变包含:int、str、tuple ↩︎
可变包含:list、set、dict ↩︎
追加数据 ↩︎
字典的成员变量运算是针对key的 ↩︎