复杂参数的使用
python中的函数的参数可以有多种类型
基础数据类型参数,默认值参数
列表数据类型参数
字典数据类型参数
可变长度参数
args是可变参数,args接收的是一个tuple
kw是关键字参数,kw接收的是一个dict
函数的返回值
在程序开发中,有时候,会希望一个函数执行结束后,告诉调用者一个结果,以便调用者针对具体的结果做后续的处理
调用函数的一方,可以使用变量来接收函数的返回结果
注意:return 表示返回,后续的代码都不会被执行
函数的嵌套调用
一个函数里面又调用另外一个函数,这就是函数的嵌套调用
如果函数test2中调用了另一个函数test1,那么执行到调用test1函数时,会先把函数test1中的代码都执行完才会回到test2中调用函数test1的位置,继续执行后续代码。
使用模块中的函数
模块好比工具包,要想使用这个工具包中的工具,就需要导入import这个模块
每一个以py结尾的python源代码文件都是一个模块
在模块中定义的全局变量、函数都是模块能够提供给外界直接使用的工具。
1、传参
#普通传数字
def add(a,b):
c=a+b
print("%d + %d =%d"%(a,b,c))
add(4,5)
#传字符串和其他类型,可以混搭,默认参数
def add1(name,age=30): #默认是30,没有传入就是30
print("我的名字%s %d"%(name,age))
add1("ppx")
add1("ppx",21)
2、 一旦有默认值,那么后面的一定也要设置默认值,否则会报错
def add1(name,age=30,course):
print("我的名字%s %d"%(name,age))
#可以这样修改
def add1(name,course,age=30):
print("我的名字%s %d"%(name,age))
#也可以这样修改
def add1(name,age=30,course="math"):
print("我的名字%s %d"%(name,age))
3、函数内传入可变参数(列表)
def add1(name,age=30,*course): #带*本身是一个列表
print("我的名字%s %d"%(name,age))
for i in range(len(course)):
print("course 的内容是 %s"%course[i])
add1("ppx",30,"a","b","c")
我的名字ppx 30
course 的内容是 a
course 的内容是 b
course 的内容是 c
4、函数内传入可变参数(字典)
def add1(name,age=30,**course): #带**本身是一个字典
print("我的名字%s %d"%(name,age))
for i in course:
print("course 的内容是 %s"%course[i])
add1("ppx",30,a="b")
我的名字ppx 30
course 的内容是 b
5、函数的嵌套
def add1(name,age=30):
print("我的名字%s %d"%(name,age))
def add2():
add1("ppx")
print("add2")
add2()
6、使用模块中的函数