https://docs.python.org/3/library/functions.html 内置的基本函数语法(开发手册)
要求缩进
def构建一个函数
def(x,n):
位置参数x,n
(a,b)
默认按照顺序 把值先后传给x,n
默认函数
c=3
def(x,n=2)这是一个默认函数,当传参数的是一个值的时候,n默认是2,注意默认函数一定要是指向一个不变对象,可以用none
列表当中增加一个参数append()
可变函数
*args
def calc(*num)
这样就是把传入任意个参数
同时也支持调用的时候把list和tuple变成可变参数传入
calc(*num)
关键字参数
**kw
可以传入0或任意个参数并且自动组装成一个dict
def(name,age,**kw):
命名关键字函数
*,后面是命名的参数,只接收后面有命名的参数
ps *,name,title
递归思想 汉诺塔问题
高级特性
切片
L[开头下标:结尾后一个的下标:多少个数目取一个的数字]
负数用在从序列尾开始计算的位置
切片操作符中的第一个数(冒号之前)表示切片开始的位置,第二个数(冒号之后)表示切片到哪里结束,第三个数(冒号之后)表示切片间隔数。
迭代
直接试试可不可以直接循环
只要是可迭代对象都是可以直接运行的
列表生成器
list(range(1,11))
[x*x for x in range(1,11)]
[x*x for x in range(1,11) if x%2=0]
使用两层排列生成全排列
[m+n]
生成器 generator
yield ()两种方法声明
迭代器 Iterator
可以被next不断调出下一个值的叫做迭代器
函数
函数可以直接赋值给变量 函数可以指向变量
所以可以用变量接收函数
def(a,b,c):
return c(a)+c(b)
map函数
map(方法,可迭代对象) 对对象中所有对象方法同时生效
reduce函数
reduce(方法,对象)是对对象当中的逐一生效 不是同时
upper 大写 lower小写
fiter函数
用于过滤序列 只留下满足条件的列表元素
返回函数
匿名函数
不用担心函数名字重复 同时使代码简单
装饰器 __name__
@在某个函数上面 比如
@log
def new()
等于
new=log(new) 即new指向log(new)
偏函数
面向对象编程
几个常见函数
tpye()
isinstance()
dir()
实列属性和类属性
__slots__限制能够绑定的属性
常用的第三方模块