第一个月 总结
数据类型:
str(字符串) int(数字) list(列表) dict(字典) set(集合) tuple(元组) bool
数据类型归类:
- 可变--改变后内存地址没有变化
list,set,dict
- 不可变
str,int,tuple,bool
- 容器类型:
str,list,tuple,set,dict
- 序列--有顺序--有索引切片
str,list,tuple
dict:映射,键--值
set:其他
运算符:
- 比较运算符 >. <. >=. <=. ==. != (is内存地址)
- 逻辑运算符 and or not
x and y x为True,返回y,x为False,返回x,一个为0,即为0
x or y x为True,返回x,x为False,返回y
- 成员运算符 in not in
- 赋值运算符 += = -= *= \=
- 算数运算符 + - * / %(取余) // **
- 身份运算符 is is not
流程控制语句
- if 条件
单分支,双分支,多分支
- while 循环--无限循环
while--else 循环正常执行完毕后去执行else后面语句
- for 循环 --有限循环
for-- else
range() for循环后可加迭代对象
语句嵌套
函数:
- 分类:内置函数,自定义函数 def
- 参数:实参:位置参数,关键字参数,混合参数(关键字参数必须在位置参数后面)
形参:位置参数,默认参数,动态参数
位置参数*args,默认参数,**kwargs(位置需要注意)
- 命名空间:
加载顺序: 内置-->全局-->局部
取值顺序: 局部-->全局-->内置
- 作用域
全局作用域:内置,全局命名空间
局部作用域:局部命名空间
B---G--E--L 从外到内
- 函数名的应用:
赋值
当做函数的参数
作为容器类型的元素
当做函数的返回值
- 匿名函数
函数名(变量)= lambda 参数:返回值
print(函数名(参数))
- glpbal
声明全局变量
改变全局变量
- nonlocal
一定是嵌套函数
E空间里面一定要有变量
L空间去引用E空间里的变量,一旦应用E空间里的变量会被改变
编码:
- ASCII-->GBK-->unicode-->utf-8
- 8位表示一个字节
- str 文本 bytes字节
str(unicode)-----encode() ------bytes
bytes(非unicode)-----decode()-----str
random 随机模块
- import random
- random.choixe(sep) 随机选择序列里面的一个元素
- random.sample(sep,2) 随机选择序列里面的几个元素
- random.randrange(1,10,2) 范围,可以加步长
- random.randint(1,10) 范围整数
- random.random() 不加范围,(0,1) 0到1之间的小数
- random.uniform(1,10) 1到10之间的小数
- random.shuffle() 打乱顺序
小数据池:
- -5 - 256这些数据共用一个内存地址
- 字符串一个元素,即使是特殊符号也是共用一个内存,超过就重新开辟内存
- 可迭代对象转化为迭代器 iter() __iter__
- 内部含有__iter__且__next__方法的就是迭代器。
- 判断是不是可迭代对象 dir collections模块 isinstance
- for循环的实现机制