一.函数的定义
def 函数名称 ([参数列表(参数之间逗号隔开,可以为空)]):
#缩进 函数体
#return 返回值(可以没有,也可以返回多个值)
当一个函数中遇到return 时,就会退出该函数
二.函数的调用
函数名称([参数(没有就不写)])
注意:函数名称后面要加括号,否则输出的为函数的地址。
三.全局变量与局部变量
全局变量:定义在文件中的变量
局部变量:定义在函数内的变量,只能在函数内部调用,在函数外不能访问该变量。
在函数内可以访问全局变量
全局变量不能直接在函数内进行操作,如果需要在函数内部操作全局变量,需要调用global关键字
四.函数的参数
函数的参数:位置参数、默认值参数、命名参数、可变参数
1.位置参数
def power(x,n):
s = 1
while n > 0:
n = n -1
s = s * x
return s
print(power(5,6)
调用函数时依次按照顺序传入两个参数的值
2.默认值参数
给一个参数设定默认值,如果这个参数没有传入相对应的值,则按照默认值进行计算,如果传入对应的值,则按照传入的值进行计算。
注意:默认值参数要写在位置参数后面,默认值在非必要的情况下不要指向可变对象(例如:列表)
3.命名参数
用 * 来表示可变参数
允许调用函数的时候传入0个或者任意个参数,系统会将这些参数自动封装成元组
def num(*numbers):
sum = 0
for n in numbers:
sum = sum + n*n
return sum
sum(1,2,3,4)
4.可变参数
用 ** 来表示命名参数
允许调用函数的时候传入0个或者任意个参数,系统会将这些参数自动封装成字典
def person(name,age,**kw):
print("name:",name,"age:",age,"other:",kw)
person("zhangsan",18,city="Beijing")
输出结果:
name: zhangsan age: 18 other: {'city': 'Beijing'}
5.命名关键字参数:
用 *,(固定参数名) 来表示
调用函数的时候给固定的参数传入值,系统会将这些参数自动封装成字典
def person(name,age,*,city,gender):
print(name,age,city,gender)
person("zhansgan",24,city="beijing",gender="男")
输出结果:
zhansgan 24 beijing 男
注意:调用函数时参数中必须要出现命名关键字,否则系统会认为你传入的时位置参数。
6.参数组合
五种参数类型可以组合使用,但是有一定的顺序,顺序是:位置参数、默认值参数、可变参数、命 名关键字参数、关键字参数
五.函数的递归
在函数的内部,调用自己
注意:递归时一定要有结束条件。
六.匿名函数
匿名函数:lambda表达式
语法:
lambda 参数 :代码 返回值(没有就不写)
sum_lambda = lambda a,b,c: a + b + c
print(sum_lambda(1,100,1000))
输出结果:
1101