Python函数基础
Posted Devilf
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python函数基础相关的知识,希望对你有一定的参考价值。
1、定义函数
使用def语句,后跟函数名、括号、冒号,括号中有时可以带有参数,然后换行缩进,编写函数体,返回值用return语句
例如:
def test(x): if x > 0: return x else: return abs(x) print(test(4)) print(test(-5))
2、参数
1)位置参数
例如:
def func(x,y,z): print(x) print(y) print(z) func(1,2,3) func(5,6)
执行结果:
1 2 3 File "F:/python3/函数.py", line 7, in <module> func(5,6) TypeError: func() missing 1 required positional argument: \'z\'
可以看出这里输入的参数少了一个便会报错
2)默认参数
默认参数的用处还是挺多的,例如,我们填写信息时,有的信息是默认的,比如你所在的国家不填就默认是中国。
例如:
def func(name,sex,country=\'CHINA\'): print(name,sex,country) func(\'Devilf\',\'boy\') func(\'GY\',\'girl\',country=\'USA\')
执行结果:
C:\\Python36\\python3.exe F:/python3/函数.py
Devilf boy CHINA
GY girl USA
设置默认参数需要注意的地方:
一、默认参数必须在必选参数后面
二、当函数有多个参数时,可以将不经常变得参数设置成默认参数
3)可变参数
可变参数就是传入的参数的个数是不固定的,可变的,例如:
def func(*args): print(args) func(1) func(1,2,3,4,5) func([1,2,3,\'a\',\'b\',\'c\']) func(1,2,3,\'a\',\'a\',1)
执行结果:
C:\\Python36\\python3.exe F:/python3/函数.py (1,) (1, 2, 3, 4, 5) ([1, 2, 3, \'a\', \'b\', \'c\'],) (1, 2, 3, \'a\', \'a\', 1)
可以看出可变参数输出的是一个元组,不管我们输入多少参数,都可以进行输出
4)关键字参数
关键字参数和可变参数很像,只不过一个输出的是元组,一个是字典,例如:
def func(name,sex,**kwargs): print(name,sex,kwargs) func(\'Devilf\',\'boy\',country=\'china\',age=24)
执行结果:
C:\\Python36\\python3.exe F:/python3/函数.py Devilf boy {\'country\': \'china\', \'age\': 24}
5)参数组合
参数组合是有顺序的,顺序为:
必选参数、默认参数、可变参数、关键字参数
例如:
def func(a,b,c=\'default\',*args,**kwargs): print(\'a=\',a) print(\'b=\',b) print(\'c=\',c) print(\'args=\',args) print(\'kwargs=\',kwargs) print(\'------1---------\') func(1,2) print(\'-------2---------\') func(1,2,c=3) print(\'--------3----------\') func(1,2,c=3,args=(\'python\',\'java\'),name=\'devilf\',sxe=\'boy\') print(\'---------4------------\') func(1,2,3,\'a\',\'b\',\'c\',n1=\'name\',n2=\'sex\',n3=\'age\')
执行结果:
C:\\Python36\\python3.exe F:/python3/函数.py ------1--------- a= 1 b= 2 c= default args= () kwargs= {} -------2--------- a= 1 b= 2 c= 3 args= () kwargs= {} --------3---------- a= 1 b= 2 c= 3 args= () kwargs= {\'args\': (\'python\', \'java\'), \'name\': \'devilf\', \'sxe\': \'boy\'} ---------4------------ a= 1 b= 2 c= 3 args= (\'a\', \'b\', \'c\') kwargs= {\'n1\': \'name\', \'n2\': \'sex\', \'n3\': \'age\'}
可以看出,参数组合时,每个参数都需要对应,位置参数、默认参数这两个参数特别需要注意
3、递归函数
递归函数就是自己调用自己。
例如:
def func(x): if x == 1: return 1 else: return x * func(x - 1) a = func(3) print(a)
这里便是在函数里自己调用自己,执行过程大概是这样的:
大概就是这么一个形式,画一个流程图来理解下:
4、高阶函数
变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数称之为高阶函数
例如:
def func(x,y,f): return f(x) + f(y) a = func(2,-3,abs) print(a)
这里abs属于一个内置函数,func是自定义函数,也就是说func这个函数接收了abs这个内置函数作为自己的一个参数。
以上是关于Python函数基础的主要内容,如果未能解决你的问题,请参考以下文章
[Go] 通过 17 个简短代码片段,切底弄懂 channel 基础