博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python函数基础
阅读量:5229 次
发布时间:2019-06-14

本文共 2502 字,大约阅读时间需要 8 分钟。

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)

执行结果:

123  File "F:/python3/函数.py", line 7, in 
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/函数.pyDevilf boy CHINAGY 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/函数.pyDevilf 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= 1b= 2c= defaultargs= ()kwargs= {}-------2---------a= 1b= 2c= 3args= ()kwargs= {}--------3----------a= 1b= 2c= 3args= ()kwargs= {
'args': ('python', 'java'), 'name': 'devilf', 'sxe': 'boy'}---------4------------a= 1b= 2c= 3args= ('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这个内置函数作为自己的一个参数。

转载于:https://www.cnblogs.com/Devilf/p/8194056.html

你可能感兴趣的文章
postgresql-查看表大小
查看>>
神经网络与机器学习 第一讲(5)——三种机器学习类型
查看>>
Mysql中like查询中存在反斜杠的解决方法
查看>>
[转载]for update的用法
查看>>
线性结构
查看>>
外部排序(基数排序)
查看>>
面试题---删除串中的指定子串
查看>>
Object properties in JavaScript
查看>>
Loadrunner socket协议lrs_receive函数接收到返回数据包 仍然等待服务器返回--解决
查看>>
C++第二周学习小结
查看>>
java读书笔记
查看>>
rabbitMQ_workQueue(二)
查看>>
Linux企业运维人员最常用150个命令汇总
查看>>
Joomla 2.5 内置控件
查看>>
chrome远程调试真机上的app
查看>>
来自Facebook的真正的大数据项目
查看>>
Web App中的Flexbox应用
查看>>
滚动播放文字或者图片信息效果
查看>>
POJ-1050To the Max
查看>>
hadoop学习网址
查看>>