1. 认识python 函数
#函数的定义
def demo():
print("aaaaaaaa")
print("cccccccc")
#函数的使用
demo()
aaaaaaaa
cccccccc
2.函数的定义格式
即定义的时候给这些参数设置默认值,例如 def myinfo(name = “zhangsan”,age=20)
注:默认值一定要放在最后。没有默认值的时候放左侧,有默认值的放在右侧。
例如:
myinfo(name="张三",age="20")
关键字参数+默认 ,这种方式更强大。
非关键字收集参数*
关键字收集参数**
例如
#非关键字收集参数*
def mysum(*numbers):
print(numbers)
#测试
mysum(10,20,30,40)
(10, 20, 30, 40)
# 关键字收集参数**
def demo(**info):
print(info)
#测试
demo(name="lisi",age=20)
{‘name’: ‘lisi’, ‘age’: 20}
(不建议)
(1)普通无参数的函数定义
#函数的定义
def myinfo():
print("大家好!")
print("我的名字叫张三,今年20岁。")
print("很高兴和大家认识!")
#函数的使用
myinfo()
大家好!
我的名字叫张三,今年20岁。
很高兴和大家认识!
#自定义获取100的累加值函数
def mysum():
res = 0
for i in range(101):
res +=i
print("100的累加值:",res)
# 测试
mysum()
100的累加值: 5050
(2)普通参数的函数定义
#函数的定义
def myinfo(name,age):
print("大家好!")
print("我的名字叫{},今年{}岁。".format(name,age))
print("很高兴和大家认识!")
#函数的使用
myinfo("zhangsan",20)
大家好!
我的名字叫zhangsan,今年20岁。
很高兴和大家认识!
#自定义获取100的累加值函数
def mysum(m):
res = 0
for i in range(m+1):
res +=i
print(m,"的累加值:",res)
# 函数的使用
mysum(10)
10 的累加值: 55
3.函数的返回值
#函数的返回值
def myadd(a,b):
return a+b #返回的时候是返回给调用者
m = myadd(10,20)*2
print(m)
60
注:若 return a+b 改为print(a + b) ,那么输出的结果为30,乘法失效。
4.函数文档
#函数的文档使用
def mysum(m):
'''
获取指定参数累加值的函数
@param int m 参数m为要求累加的值
@return int 返回累加的结果
'''
res = 0
for i in range(m+1):
res += i
return res
print("10的累加值: ",mysum(10)
10的累加值: 55
#使用函数的文档
help(mysum)
print(mysum.__doc__)
5.局部变量和全局变量
#全局变量:在函数外定义的变量
name = "zhangsan"
def demo():
global name
name = "lisi"
print(name) #不可修改外部全局变量,除非使用global声明一下
demo()
print(name)
lisi
lisi
#局部变量:在函数内声明的变量
def fun():
m = 0
m +=1
print(m)
print(locals()) # 输出当前环境下的局部变量都有哪些
fun()
1
{‘m’: 1}
6.匿名函数 lambda
# 匿名函数 lambda
#定义一个匿名函数
myadd = lambda a,b:a+b #a+b 是一个函数体
#等价于如下的定义
def myadd(a,b):
return a*b
# myadd = demo
print(myadd(10,20))
print(myadd(30,40))
200
1200
7. 闭包函数
#闭包函数定义处理
def fun():
m = 0
def dd():
nonlocal m #使用外部函数中的局部变量,类似于global
m += 1
print(m)
return dd
d = fun()
d()
d()
d()
d()
1
2
3
4