Python3:基础函数参数的理解

Python的函数的意思是通过一个名字将一段代码把它包起来,是程序变得可扩展、易维护、减少代码重复。

def name1():
print(“hello,world”,)
name1()
print(name1)

这是一个普通的函数,name1()调用函数命令,print(name1)输出函数所在的内存地址

def name1(a,b,c,d=”aaa”):
print(“hello”+a+b+c+d)
name1(“a1”,”a2”,”a3”)
name1(“b1”,”b2”,”b3”,)
name1(“c1”,c=”c3”,b=”c2”,d=”c4”)

形式参数def name1(a,b,c,d=”aaa”)是只有在调用的使用才会存在的参数,实际参数name1(“a1”,”a2”,”a3”)是真实已经存在的参数,位置参数name1(“a1”,”a2”,”a3”)是按顺序排列的参数,关键参数name1(“c1”,c=”c3”,b=”c2”,d=”c4”)是给参数定义值,可以不按顺序但必须放在位置参数后面,默认参数def name1(a,b,c,d=”aaa”)是在形式参数基础上,已经给它指定了一个值,它必须放在位置参数后面,实际参数没有该值时就使用默认参数,有就使用它定义的值,例如下面这一段代码,实例name1(“c1”,c=”c3”,b=”c2”,d=”c4”)

def name2(a,*b,c):
print(b,c)
for a1 in b:
print(a1)
name2(“a1”,”a2”,”a3”,”a4”,c=”a5”)
name2(“b1”,*[“b2”,”b3”,”b4”,”b5”],c=”b6”)

非固定参数def name2(a,*b,c)和name2(“a1”,”a2”,”a3”,”a4”,c=”a5”)是可以传不固定个数的参数到函数里去,在参数前面加上*星号代表将位置参数打包成元祖的形式传入函数,非固定参数后面可以接关键参数, name2(“b1”,*[“b2”,”b3”,”b4”,”b5”],c=”b6”)中在列表加上星号代表以将整个列表的单个元素作为单个参数传入函数,如果不加星号则代表将整个列表打包成元组的形式传入函数

def name3(a,*b,**c):
print(a,b,c)
name3(“a1”,”a2”,”a3”,good=”a4”,fool=”a5”)
d = {“b2”:”c2”,”b3”:”c3”,”b4”:”b4”}
name3(“b1”,”c1”,”d1”,**d)

这个是字典的用法,比较类似列表的用法,原理差不多