一、Python函数的作用
使用函数是增强代码复用率的一种办法,将需要重复使用的代码块定义成一个函数,然后在其他代码中应用函数就可以去调用其中的代码,这个和Shell中的函数是一样的。
二、Python函数的定义与调用
1、普通函数
# def funcname(parameter1,parameter22,...); #使用def语句定义函数,后面的parameter是参数列表(非必写),其可以是数组形式 # 代码块 # [return 某个值] #如果没有return的话返回None # 示例 def printInfo(): print("真的太难了") printInfo() #输入函数名即可完成调用
2、带参函数
def calc(num1,num2) #这里为calc函数定义了2个形参 result = num1 + num2 print(result) calc(10,20) #这里括号内的就是实参,由于形参有2个,所以实参也需要2个 calc(num2=5,num1=2) #也可以通过关键字指定实参的值,不用强行按照形参的顺序来定义,更灵活
3、可变参数函数
def my_sum(x,*y) #*号为可变参数,建议将可变参数放在最后一位 print (x) print (y) my_sum(1,2,3,4,5) #除了第一个参数外其他全部以元组数据传递给y,而y是一个字典 #如果要传递的参数本身是数组或者列表,在实参部分加*号就可以自动拆解,不用再单独指定索引 nums = (12,4,5,1) my_sum(2,*nums)
4、关键字参数。用2个星号来表示参数可变,但是每个参数需要带有名称
def test1(x,**y) print(x) print(y) test1(x,canshu1=5,canshu2=1) #2个参数都定义了名称
5、参数默认值
如果程序中有大量参数的最终值是一样的,可以给它设置一个默认参数,省去重复性工作。如果在实参里定义了值可以覆盖默认参数的值。需要注意的在定义和调用默认参数时,一定要把默认参数全部放在后面写,不要穿插有形参
def student_info(name,sex,age,school='清华大学'): # 为school参数设置了默认值 print('我叫' + name) print('我今年' + str(age) + '岁') print('我是' + sex + '生' ) print('我在' + school + '上学') student_info('天才','男','7') #这里就不用定义school的值 student_info('果果',sex='女',21,school='四川大学') #这种在默认参数中混入形参的语法会报错
三、使用return指定函数返回值
#一个函数中的代码块可能存在多个任务,如果想指定最终返回结果,需要用return def worker(a, b, c): x = a + b y = x * c return y num = worker(1, 2, 3) print(num) #返回为9,(a+b)*c
四、函数的其他知识
1、在函数中定义的变量默认都为局部变量 ,在函数A中定义了变量var1,在函数中B也可以定义一个变量var1。如果要让该变量全局生效需要加关键词global。
def test1(): a = 10 print(a) def test2(): a = 20 print (a) def test3() global b = 10 #全局变量 test1() #输出10 test2() #输出20
2、一个函数接收另一个函数作为参数,那么这个函数是高阶函数
发表评论: