第二周知识总结
2019-11-11 14:12:55 0 举报
AI智能生成
python第二阶段总结
作者其他创作
大纲/内容
函数的参数
固定结构
def 函数名(参数)
形参
写在定义函数的时候写在小括号里面的就是形参
最终顺序:位置参数:动态位置参数:关键字(默认)参数:动态(默认)关键字参数
子主题
默认参数
在位置参数的后面才能声明关键字参数
动态参数
动态位置参数
*args 接收多余的位置参数
动态位置参数必须在位置参数的后面
动态关键字参数
**kwargs接收多余的关键字参数
实参
在函数调用的时候给函数传递的值
位置参数
一 一 对应 不能多也不能少
按照位置来赋值
关键字参数
混合参数
位置参数与关键字参数混合使用
注意:在使用混合参数的时候 位置参数必须在关键字参数的前面
传参
从调用函数的时候将值传递给定义函数的过程就叫传参
函数的名称空间与作用域
命名空间分类
全局命名空间
局部命名空间
在函数中声明的变量会放在局部命名空间
内置命名空间
存放python解释器为我们提供的名字
加载顺序
取值顺序
1.局部命名空间 2. 全局命名空间 3. 内置命名空间
作用域
全局作用域
包含内置命名空间和全局命名空间. 在整个文件的任何位置都可以使用(遵循 从上到下逐⾏执行).
局部作用域
在函数内部使用的
作用域的命名空间
1.全局作用域: 全局命名空间+内置命名空间
2.局部作用域:局部命名空间
迭代器
可迭代对象定义
能用 . 点出__iter__方法的就是可迭代对象
可迭代对象的优点:1.可以直观的查看里面的数据
可迭代对象的缺点:1.占用内存 2.可迭代对象不能迭代取值
迭代器的定义
在python中,内部含有__Iter__方法并且含有__next__方法的对象就是迭代器。
可迭代对象转化成迭代器
固定结构:变量名.__iter__()
迭代器取值
使用__next__() 取值 一个__next__取一个值 使用的时候只能多不能少否则会报错
迭代器的优点:1.节省内存. 2. 惰性机制(__next__()一次取一个值)
迭代器的缺点:1.不能直观的查看里面的数据. 2. 取值时只能一直向下取值
推导式
列表推导式
1..循环模式:[变量(加工的变量) for 变量 in iterable]
2.筛选模式: [变量(加工的变量) for 变量 in iterable if 条件]
闭包
闭包的定义:
闭包是嵌套在函数中的函数。
闭包必须是内层函数对外层函数的变量(非全局变量)的引用。
闭包的作用
保存局部信息不被销毁,保证数据的安全性
闭包的应用:
可以保存一些非全局变量但是不易被销毁、改变的数据
第二周知识总结
初识函数
函数的固定结构
def 函数名():
函数的定义
函数在内存内开辟了一个新空间里面存放的是代码
函数的优缺点
函数的调用
函数名+()就是在调用这个函数
函数的返回值
函数名命名规范与变量命名规范相同
函数名的运用
函数名可以赋值给其他变量
函数名可以当做容器的元素
函数名可以当做函数的参数
函数名可以作为函数的返回值
三元运算符
(参数1 如果条件成立 否则 参数2)
函数的嵌套
global 变量名: 申明使用全局作用域中的变量
如果全局中不存在就创建一个
生成器
创建生成器
1.通过生成器函数
并且生成器函数中可以写多个yield
2.通过生成器推导式
3.python内置函数或者模块提供
生成器的本质就是迭代器
同样使用__next__()取值
yield与return的区别:
return一般在函数中只设置一个,他的作用是终止函数,并且给函数的执行者返回值。
yield在生成器函数中可设置多个,他并不会终止函数,next会获取对应yield生成的元素
send与__next__()的区别
相同点:
send 和 next()都可以让生成器对应的yield向下执行一次。 都可以获取到yield生成的值。
不同点:
第一次获取yield值只能用next不能用send(可以用send(None))。
send可以给上一个yield置传递值。
yield from:在python3中提供一种可以直接把可迭代对象中的每一个数据作为生成器的结果进行返回
内置函数
了解
eval:执行字符串类型的代码,并返回最终结果。禁用
exec:执行字符串类型的代码 禁用
hash:获取一个对象(可哈希对象:int,str,Bool,tuple)的哈希值。
help:函数用于查看函数或模块用途的详细说明
callable:函数用于检查一个对象是否是可调用的。如果返回True,仍然可能调用失败;但如果返回False,调用对象ojbect绝对不会成功。
float:函数用于将整数和字符串转换成浮点数。
complex:函数用于创建一个值为 real + imag * j 的复数或者转化一个字符串或数为复数。如果第一个参数为字符串,则不需要指定第二个参数。。
round:保留浮点数的小数位数,默认保留整数
pow:求x**y次幂。(三个参数为x**y的结果对z取余)
bytes:用于不同编码之间的转化。
ord:输入字符找当前字符编码的位置
chr:输入当前编码的位置数字找出其对应的字符
repr:返回一个对象的string形式(原形毕露)
all:可迭代对象中,全都是True才是Trueany:可迭代对象中,有一个True 就是True
重要
int:函数用于将一个字符串或数字转换为整型。
bin:将十进制转换成二进制并返回。oct:将十进制转化成八进制字符串并返回。hex:将十进制转化成十六进制字符串并返回。
str() 将字节转换成字符串
list() 将可迭代对象转换成列表
tuple() 将可迭代对象转换成元组
dict() 将元组和列表转换成字典
set() 将可迭代对象转换成一个集合
print() 屏幕输出。
abs() 返回绝对值
dir() 查看当前对象具有什么方法
zip() 拉链
max() 最大值与最小值用法相同min() 求最小值
匿名函数
固定结构: 函数名 = lambda 参数:返回值
此函数不是没有名字,他是有名字的,他的名字就叫做lambda
lambda 是定义匿名函数的关键字,相当于函数的def
lambda 后面直接加形参,形参加多少都可以,只要用逗号隔开就行。
匿名函数不管多复杂.只能写一行.且逻辑结束后直接返回数据
0 条评论
回复 删除
下一页