Python3中的函数 大全,,Python 函数函


Python 函数

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

函数能提高应用的模块性,和代码的重复利用率。Python提供了许多内建函数,比如print()。但也可以自己创建函数,这被叫做用户自定义函数。

1.函数的定义:

你可以定义一个由自己想要功能的函数,以下是简单的规则:

函数代码块以def关键词开头,后接函数标识符名称和圆括号()。

任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。

函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。

函数内容以冒号起始,并且缩进。

pass关键字,代表什么都不干

exit(num) 强行退出(num:是一个数字,显示为退出码)

return [表达式]结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

语法

deffunctionname(parameters):function_suitereturn[expression]

默认情况下,参数值和参数名称是按函数声明中定义的的顺序匹配起来的。

举例1:

defadd(x,y):print(“x={0}”.format(x))print(“x={0}”.format(x))print(“x+y={0}”.format(x+y))returnx+y

举例2:

#!/usr/bin/envpython#-*-coding:utf-8-*-#@Time:2018/4/1420:31#@Author:FengXiaoqing#@File:demo1.py#@Function:-----------deff(x,l=[]):foriinrange(x):l.append(i*i)print(l)#f(2)=f(2,l=[])f(2)#结果:[0,1]f(3,[3,2,1])#结果:[3,2,1,0,1,4]f(x=3,l=[])#结果:[0,1,4]

运行结果:

[0,1][3,2,1,0,1,4][0,1,4]

2.函数的调用

定义一个函数只给了函数一个名称,指定了函数里包含的参数,和代码块结构。

这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从Python提示符执行。

如下实例调用了add()函数:

#!/usr/bin/envpython#-*-coding:utf-8-*-#@Time:2018/4/1521:01#@Author:FengXiaoqing#@File:demo2.py#@Function:-----------#自定义加法函数add()defadd(x,y):print("{0}+{1}={2}".format(x,y,x+y))returnprint("finished")#在return后不会执行这条语句#调用函数,计算2+3的得数add(2,3)

运行结果:

2+3=5

3.函数的参数

形式参数和实际参数

在定义函数时,函数名后面,括号中的变量名称叫做形式参数,或者称为"形参"

在调用函数时,函数名后面,括号中的变量名称叫做实际参数,或者称为"实参"

deffun(x,y)://形参print(x+y)fun(1,2)//实参3fun(‘a‘,‘b‘)ab

函数默认参数:

缺省参数(默认参数)

deffun(x,y=100)printx,y#调用:fun(1,2)fun(1)

定义:

#!/usr/bin/envpython#-*-coding:utf-8-*-deffun(x=2,y=3):printx+y

调用:

fun()#结果:5fun(23)#结果26fun(11,22)#结果:33

我们经常在看别人的代码中,经常出现def(*args, **kwargs)这样的表现形式:

*args 指的是:tuple (1, )
**kwargs 指的是:dict {“k”: “v”}

fun(*args, **keargs)
fun(1, 2, 3, 4, 5, a=10, b=40)

4.函数的返回值

函数返回值:

函数被调用后会返回一个指定的值

函数调用后默认返回None

return返回值

返回值可以是任意类型

return执行后,函数终止

return与print区别

#!/usr/bin/envpython#-*-coding:utf-8-*-deffun():print‘helloworld‘return‘ok‘print123fun()#结果helloworld123None

5.函数的变量

局部变量和全局变量:

Python中的任何变量都有特定的作用域

在函数中定义的变量一般只能在该函数内部使用,这些只能在程序的特定部分使用的变量我们称之为局部变量

在一个文件顶部定义的变量可以供文件中的任何函数调用,这些可以为整个程序所使用的变量称为全局变量。

deffun():x=100printxfun()x=100deffun():globalx//声明x+=1printxfun()printx

外部变量被改(x由100改为101):

x=100deffun():globalxx+=1print(x)fun()print(x)#结果101101

内部变量外部也可用:

#!/usr/bin/envpython#-*-coding:utf-8-*-#@Time:2018/4/1521:33#@Author:FengXiaoqing#@File:demo2.py#@Function:-----------x=100deffun():globalxx+=1globalyy=1print(x)fun()print(x)print(y)#结果:1011011

统计程序中的变量,返回的是个字典

#!/usr/bin/envpython#-*-coding:utf-8-*-x=100deffun():x=1y=1print(locals())fun()print(locals())

结果:

{‘y‘:1,‘x‘:1}{‘__name__‘:‘__main__‘,‘__doc__‘:None,‘__package__‘:None,‘__loader__‘:<_frozen_importlib_external.SourceFileLoaderobjectat0x02FF6390>,‘__spec__‘:None,‘__annotations__‘:{},‘__builtins__‘:<module‘builtins‘(built-in)>,‘__file__‘:‘D:/PycharmProjects/PythonLive/untitled/day07/demo2.py‘,‘__cached__‘:None,‘x‘:100,‘fun‘:<functionfunat0x052D2390>}

6.匿名函数

顾名思义就是没有名字的函数,那为什么要设立匿名函数,他有什么作用呢?
lambda 函数是一种快速定义单行的最小函数,可以用在任何需要函数的地方

python 使用 lambda 来创建匿名函数。

lambda只是一个表达式,函数体比def简单很多。

lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。

lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。

虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。

语法

lambda函数的语法只包含一个语句,如下:

lambda[arg1[,arg2,.....argn]]:expression

举例:

求两数的乘积:

常规写法:

deffun(x,y)returnx*y

lambda版本写法:

r=lambdax,y:x*y


7.高阶函数

(1)map(f, list)

返回每个元素通过f计算完的value的list

map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。

举例:计算列表里值的平方

#!/usr/bin/envpython#-*-coding:utf-8-*-deff(x):returnx*xforiinmap(f,[1,2,3,4,5,6,7]):print(i)

结果:

14916253649

(2)reduce(f,list)函数(求list中数的和)

reduce把一个函数作用在一个序列[x1, x2, x3...]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算,其效果就是:

举例:计算列表中所有数的和

#!/usr/bin/envpython#-*-coding:utf-8-*-fromfunctoolsimportreduce#导入reduce函数deff(x,y):returnx+yprint(reduce(f,[1,2,3,4,5,6,7,8,9,10]))print(reduce(f,range(1,101)))#结果:555050

(3)filter()函数(过滤)

filter函数接收一个函数f和一个list,函数f的作用是对每个元素进行判断,返回True或者False,filter()根据判断结果自动过滤掉不符合条件的元素,返回符合要求的元素组成的list

filter(lamdba x: x%2 ==1, [1, 2, 3, 4, 5])

举例:计算list中小于7的数

#!/usr/bin/envpython#-*-coding:utf-8-*-foriinfilter(lambdax:x<7,[1,2,3,4,5,40,8]):print(i)#结果:12345

(4)sorted()函数(排序)

sorted(...)
sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list

#sorted(iterable,key,reverse)#iterable一个可迭代的对象#key对什么进行排序#reversebool类型,如果为true为反序,默认为false#返回值是一个list

举例:厦工叉车

#!/usr/bin/envpython#-*-coding:utf-8-*-#@Time:2018/4/1522:47#@Author:FengXiaoqing#@File:demo3.py#@Function:-----------m=dict(a=1,c=10,b=20,d=15)print(sorted(m.items(),key=lambdad:d[1],reverse=True))#按value值倒序排列#结果:[(‘b‘,20),(‘d‘,15),(‘c‘,10),(‘a‘,1)]

Python3中的函数 大全

评论关闭