一、函数开端综合
'''
函数的嵌套
变量的作用域
闭包
装饰器
def wrapper
def inner(*args,**kwargd);
ret = inner(*args,**kwargs)
return ret
return innner
@wrapper
def func():
pass
迭代器
生成器
yield
g = (x for x in xx)
推导式
匿名函数
python内置函数_下 sorted,filter,map
'''
二、函数的定义
'''
函数的嵌套
变量的作用域
闭包
装饰器
def wrapper
def inner(*args,**kwargd);
ret = inner(*args,**kwargs)
return ret
return innner
@wrapper
def func():
pass
迭代器
生成器
yield
g = (x for x in xx)
推导式
匿名函数
python内置函数_下 sorted,filter,map
'''
def buy_cai(): ### 只是定义函数,没有调用,不会执行
print('1.打车')
print('2.去菜市场')
print('3讨价还价')
print('4.回家')
buy_cai()
print('哄哄孙子')
buy_cai()
print('冲洗马桶')
buy_cai()
print('打打老头')
三、函数的参数
"""
参数 :可以在参数函数调用的时候,给函数传递一些信息
分类:
1.形参,在函数定义的时候,需要准备一些变量来接收信息
2.实参,实际在调用的时候传递的信息
"""
### 1.骂谁? 2.骂到什么程度?
def maren(ren,lv):
print('1.怒目而视',ren)
print('2.验证交流',ren)
if lv > 99:
print('3.死不要脸')
else:
print('3.你愁啥')
print('4.骂完收工')
maren('破解盘',188) ### 在调用函数的时候,才知道骂谁,骂到什么程度
maren('破鼠标',10)
maren('破电脑',9999)
四、形参和实参的分类
"""
参数:可以在函数调用的时候,给函数传递一些信息
分类:
1.形参,在函数定义的时候,需要准备一些变量来接受信息
1.位置参数,按照位置一个一个声明变量
2.默认值参数,在函数声明的时候的变量一个默认值,如果实参不传递信息,此时默认值生效,否则就不生效
3.动态传参
1 *args 表示接受所有的位置参数的动态传参
在形参前面加上一个*号
2 **kwargs 表示接收所有的关键字的动态传参
顺序:位置参数 > *args >默认值参数 > **kwargs
可以搭配使用
2.实参,实际在调用的时候传递的信息
1.位置参数,按照位置进行传递
2.关键字参数,按照关键字的名字进行传递参数
3.混合参数
顺序:关键字函数放后面
实参在执行的时候必须保障每一个形参必须有数据
* 在实参传递的时候,是把列表打撒成位置参数进行传递
** 在实参位置,可以把字典自动转化成关键字参数进行传递
"""
五、返回值
"""
返回值:函数执行之后,会给调用方一个结果,这个结果就是返回值
关于return:
函数只要执行到了return,函数就会立即停止并返回内容,函数内的return的后续的代码不会执行
1.如果函数内没有return,此时外界收到的是None
2.如果写了return
1.只写return,后面不跟数据,此时接收到的依然是None
2.return值,此时表示函数有一个返回值,外界能够接收一个数据
3.return 值1,值2,值3....此时函数有多个返回值,外界收到的是元祖,并且,该元祖内,存放所有的返回值
"""
def func(a,b):
return a + b
ret = func(10,20)
print(ret * 3)
六、内置函数
"""
基础数据类型相关
和数字相关的
内置函数:直接拿来用的函数
1.print
2.input
3.complex 复数:实部 + 虚部
4.bin,oct,hex
bin 二进制
oct 八进制
hex 十六进制
a = 18 十进制
print(bin(a)) 0b10010
print(oct(a)) 0o22
print(hex(a)) 0x12
二进制转十进制
a = 0b10010
print(int(a))
5.sum
6.min
7.max
8.pow 次方
a = 10
b = 3
print(pow(a,b))
和数据结构相关的
1.list
2.typle
3.reversed 翻转
4.slice
5.formot
格式化
a = 18
printf(foramt(a,'08b')) x:十六进制,b:二进制,o:八进制
其中08b,是定制,如8位,空位用0补齐
6.ord
a = '中'
printf(ord(a)) 中国的中字在unicode中码位是20013
7.chr
print(ch(20013)) 给出编码位置展示出文字
8.enuimerate
for i,j in enuimerate(lst)
9.all 可以当做and看
10.any 可以当做or看
"""
七、作用域
""" 作用域:变量的访问权限 总结 :里面访问外面没问题,外面访问里面不能直接访问 """
a = 10 ### 全局变量 ——》全面作用域
def func(): ### 全局
b = 20 ### 局部变量 ——》局部作用域
print(b)
def func():
c = 10086
return c ### 如果想要在函数外面访问到函数内部的东西,必须return
八、函数的嵌套
"""
函数可以嵌套函数
def fun1():
def fun2(): 函数的嵌套,局部
"""
def func1():
print(123)
def fun2():
print(456)
def fun3():
print(789)
print(1)
fun3()
print(2)
print(3)
fun2()
print(4)
func1()