day01
- 变量:7
- 常量:变量名全部大写
- 注释:单行注释 # ,多行注释""" """
- 基础数据类型
- str:python中只要是引号引起来的就是字符串,加法同类型,乘法和数字相乘 单双引号配合使用
- int:用于计算和比较
- bool:用于判断
- input()---输入,获取的都是字符串/print()--输出,打印内容
- 流程控制:if , if else ,if elif elif else,if elif elif ,if if if ,if嵌套
- type
day02
- 死循环:while True while else
- break 终止循环
- continue -结束本次循环,继续下次循环
- 字符串格式化 %s --填充字符串,%d %i --- 数字, %%==% --转义
- f"{}"3.6以上版本才能使用
- 运算符
- 算术运算符 + - * / ** %
- 比较运算符 > < >= <= == !=
- 赋值运算符 += -= * = / = **= %=
- 逻辑运算符:
- and 都为真去后面,都假去前边,一真一假选假的
- or 都为假 选后边,都为真选前前边,一真一假选真的
- not 相反
- () >not >and >or
- 成员 in ,not in
- 编码
- ascci 没有中文
- gbk 英文1字节 中文2字节
- unicode 英文2字节 中文4字节
- utf-8 英文1字节 欧文2字节 亚文3字节
- 1B(字节)=8b(位)
day03
-
整型
- 十转二bin
- 二转十int
-
字符串详解
索引 切片 步长
- upper大写
- lower小写
- startswith什么开头
- endswith什么结尾
- count计数
- strip 脱
- split 切
- repace 替换
- isdecimal 十进制
- isdigit 阿拉伯
- isalanum 字母中文数字
- isalpha 字母中文
-
len
-
for 循环 pass
-
非可迭代对象 int bool
day04
- list 列表-- 存储大量数据(不同类型)
- 增 append insert extend
- 删 pop remove del clear
- 改 索引 切片(任意长度不报错) 步长(一一对应)
- 查 for
- 元组 tuple 元组就是一个不可变的列表 index count for
- range() range(起始位置,终止位置,步长)顾头不顾尾
- py2 和 p3的区别
- p2:range(1,10) --列表
- p3:range(1,10)--可迭代对象
day05
- dict 字典
- 键:不可变
- 值:任意数据
- 增删改查
- 增 dic["键"]= 值 setdefault
- 删 pop clear del popitem--随机删除
- 改 update(字典)
- 查setdefault("键") get(键)
- 解构 一行换元素数据 a,b =b,a
day06
- 小数据池: 整型 字符串 bool
- 整数 -5 ~256 python3.7 :-5~4096
- 字符串:乘法总长度不超过20
- 代码块 -- 一个模块(文件)\函数\类\终端中的每一行
- 整型 字符串 bool
- 整数 -5 ~正无穷
- 字符串:乘法总长度不超过20
- is 判断内存地址是否相同 ,==判断两边的值是否相同
- 深浅拷贝
- 赋值: 多个变量名指向同一内存地址 ,修改就会全部改变
- 浅拷贝:只拷贝第一层,修改第一层不改变
- 深拷贝:不可变数据类型共用一块内存地址,可变数据类型不换嵌套多少层都会开辟新的内存空间
- 集合 set()天然去重 没有值的字典
- 增 add uppdate(迭代添加)
- 删 pop remove clear del
- 改 先删后加
- 查 for
day07
- 数据类型补充:
- str:
- capitalize
- title
- swapcase
- center
- find -1
- index 找不着报错
- join
- str.format()格式化
- list
- 列表相加生成新列表
- 列表乘数字 共用一块地址
- sort
- reverse
- tuple 可加 可乘乘法共用一块地址
- dict
- dict(a=1,b=2)
- fromkeys迭代添加 需要接受
- 坑 lst = [1,2,3,4,4]从后向前删,或者copy新的列表
- 字典和集合 迭代的时候不能改变原数据的大小
- str:
- 二次编码
- encode编码
- decode解码
day08
- 文件操作
- r w a
- r+ w+ a+
- rb wb ab
- open
- f.read#指定字节或字符 close readline readlines seek--按字节移动
- 绝对路径 相对路径
- with open 同时打开 操作多个文件
day09
-
函数初始:
-
函数定义 def 函数名():
函数体
-
函数调用 函数名+()
-
return 终止函数 返回值(单个任意数据类型,多个以元组形式)不写和写了没写值 返回None return下方代码不执行 可以写多个但是只执行一个
-
-
参数
- 形参:函数定义阶段括号中的值是形参,位置参数>动态位置参数>默认参数()>动态关键字参数
- 实参:在函数调用阶段括号中的是实参位置参数(一一对应) > 默认参数(可写可不写,写了就覆盖)
- 传参:将实参传递给形参的过程
day10
- 动态参数: *args,**kwargs--万能传参
- 优先级 位置>动态位置>默认>动态关键字
- 函数的注释
- 查看注释 函数名.__doc__
- 查看函数名 函数名.__name__
- 名称空间
- 内置空间:python解释器自带的
- 局部空间:当前py文件中的
- 全局空间:函数体中
- 作用域
- 全局:作用域 内置空间+全局空间
- 局部作用域:局部做空间
- 函数的嵌套 一层套一层
- global---只修改全局变量
- nonlocal--只修改局部,修改离他最近的一层
- 三元运算符 条件成立的结果 条件 条件不成立的结果
day11
- 函数名的第一类对象及使用
- 函数名的可当作值赋值给变量
- 可以当作元素放在容器中
- 可以当作另一个函数的参数
- 可以当作函数的返回值
- 可迭代对象 :具有__iter__()方法的就是可迭代对象
- 迭代器:具有__iter__()和__next__()方法的就是迭代器 一次性的
- for的本质 用while循环
- 迭代器优点:节省内存,惰性机制 缺点:不能逆行,不能灵活使用,不能直接查看元素
- 递归 自己不断调用自己本身,有明确的终止条件,----一递一归
day12
-
生成器,本质是迭代器
-
生成器和迭代器的区别;
- 生成器是程序员所写的
- 迭代器python自己写的
-
在函数内将return 换成yield func()--生成一个生成器
-
生成一个生成器的时候赋值给一个变量,再往后迭代
-
yield from 吧可迭代对象中的元素逐个的返回
-
for 循环进行取值
-
推导式
- list [变量 for循环 加工条件]
- 生成器表达式 ( 变量 for循环 加工条件)
- 字典dict {键:值 for循环 加工条件}
- 集合set{键 for循环 加工条件}
-
内置函数一(了解)
-
eval
-
exec
-
hash
-
help
-
callable
-
int
-
float
-
complex
-
bin
-
oct
-
hex
-
divmod
-
round
-
pow
-
bytes
-
ord
-
chr
-
repr
-
all
-
any
-
globals
-
locals
-
day13
-
内置函数二 filter sorted reversed map zip print max min reduce (lambda x:x)( 实参)
-
abs
-
enumerate
-
max
-
min
-
sum
-
open
-
print
-
len
-
list
-
dict
-
tuple
-
type
-
zip
-
dir
-
lambda
-
format
-
filter
-
reversed
-
sorted
-
map
-
reduce
-
-
闭包 在一个嵌套函数内使用非全局变量且不是本层变量就是闭包
day14
- 装饰器: 本质是闭包 开放封闭原则 在不修改源代码和调用方式的前提下,增加额外的功能
day15
-
带参数的装饰器
在装饰器的基础上在套一层 @auth(参数)
-
多个装饰器修饰一个函数
先执行离被装饰函数最近的语法糖
小技巧:进入装饰器从上向下,走到最后一个装饰器执行被装饰的函数,退出从下往上