python数据处理函数_Python数据处理基础五:函数

使用函数可以极大方便地完成重复的任务。

定义函数

与其他编程语言一样,Python也能定义自己的函数,定义一个新的函数的格式如下:def [函数名]([参数]):

[函数内容...]

return [返回内容]

其中return可以忽略,则为不返回数据。

现在,我们可以创建一个用于计算一个数列平均数的函数。def average(l):

sum = 0

for i in l:

sum += i

avg = sum / len(l)

return avg

第一行我们定义了函数的名字和需要输入的参数l(一个数列),第二行设置一个为0的统计变量用于计算数列的和。

再使用for循环求出数列的和,定义一个avg变量来存放平均数,等于和除数量(用到了len()函数获取数列元素的个数)。

最后使用return返回计算出的平均数。

此处为了展示将函数内容展开来写,实际情况中可以写的更加简单方便(return [表达式]):def average(l):

return sum(l)/len(l)

这里直接用到了Python内置的sum()函数来求数列的和,与上面的函数是完全一致的。

函数的使用

要使用函数,只需要按照如下格式书写:[函数名]([参数])

例如使用上面定义的平均数函数计算一个平均数:def average(l):

return sum(l)/len(l)

a = [2,5,9,13,15,26]

print(average(a))

运行返回11.666666666666666

其实,在这个例子里,我们还用到了print()函数,这是Python自带的函数,我们输入的average(a)就是它的参数。

参数

Python中函数的参数可以分为:必备参数

关键字参数

默认参数

不定长参数

必备参数

必备参数是使用函数时必须传入的参数,如果没有输入参数,则会出现错误。

定义一个必备参数只需要在定义函数时,写上变量名即可,例如上面我们定义的平均数函数中的l即是。

必备参数是指运行这个函数一定要有的输入,如计算平均数就一定要有一组数据才能计算。

当有多个必备参数时,需要按照顺序传入参数。

例如定义和使用一个计算两点坐标距离的函数:def distance(x1,y1,x2,y2):

return ((x1-x2)**2+(y1-y2)**2)**0.5

print(distance(1,1,2,2))

运行返回1.4142135623730951

关键字参数

关键字参数是指传入参数时指定变量传入,使用[变量名]=[传入值]的格式,这样可以不用按照顺序输入,如使用上面的distance()函数就可以这样使用:distance(y2=2,x1=1,y1=1,x2=2)

这样传入参数的效果与上面的例子中一致。

默认参数

默认参数可以理解为可选参数,即可以传入这个参数,也可以不传入,若不传入则使用默认值。

定义默认参数时需要按照[变量名]=[默认值]的格式定义,且所有默认参数都要写在必备参数后面。

例如我们现在在上面平均数函数的基础上,增加一个对返回值四舍五入的功能,需要定义一个变量来传入需要四舍五入的小数位数。def average(l, r=False):

if r:

return round(sum(l)/len(l),r)

else:

return sum(l)/len(l)

a = [2,5,9,13,15,26]

print(average(a))

print(average(a,r=3))

运行返回11.666666666666666

11.667

在这里定义函数时,我们定义了一个r=False的变量来传入四舍五入的位数。

当我们在第9行调用函数而不给r传入参数时,r就会使用定义时候给的值False,那么就会返回没有四舍五入处理的结果。

而在第10行时,使用与关键字变量形式相同的格式,给r传入了参数3,那么if r:就会通过,从而返回四舍五入r位小数后的结果了。

由此可见,默认参数可以作为一些额外功能来使用,也可以为大多数情况定义一个默认值,当有额外情况出现时,再传入参数即可,大大简化了函数的使用。

不定长参数

不定长参数指的是可以输入无限个未声明的参数。

例如Python自带的print()函数的参数就是一个不定长参数。print()函数可以传入无限个参数,而且他们都会一个个显示出来。print(2, 4.33, "hi", {"year":2020,"month":3})

返回2 4.33 hi {'year': 2020, 'month': 3}

定义不定长参数为*[变量名],加了星号的变量名会形成一个元组,存放所有未命名的变量参数,不定长变量要写在以上三种类型的变量之后,即最后。

以下是一个展示不定长参数性质的例子def who_in_classroom(teacher,*student):

print("Teacher: " + teacher)

number = 1

for i in student:

print("NO." + str(number) + " student: " + i)

number += 1

print(who_in_classroom("Jame","Mike","Tony"))

print("-"*20)

print(who_in_classroom("Jame","Mike","Tony","Jack","Lily"))

运行返回:Teacher: Jame

NO.1 student: Mike

NO.2 student: Tony

--------------------

Teacher: Jame

NO.1 student: Mike

NO.2 student: Tony

NO.3 student: Jack

NO.4 student: Lily

return 语句

return语句用于给函数返回值,运行到return语句并返回值后,函数就会结束运行。如同循环中的break,遇到则结束。

return可以返回多个表达式(见下面例子)

全局变量与局部变量

在函数内定义的变量为局部变量,在函数外定义的变量为全局变量。两者独立存在,即使变量名相同也不影响。

函数内的局部变量只能在函数里使用,如果想在函数外部获得则需要使用return返回。

同理要在函数内使用全局变量,需要通过函数参数的方式传入。def func(a):

b = "我是局部变量"

return a,b

a = "我是全局变量"

b = "我也是全局变量"

print(a,b,func(a))

运行返回我是全局变量 我也是全局变量 ('我是全局变量', '我是局部变量')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值