Python教程继续更新了-Python入门教程04函数

昨天偷了一下懒,看了会剧,就没有更新Python的教程,今天我们继续更新,这一篇是关于Python中的函数。

其实写了这几天,我发现一个问题,就是这种教程只有第一天大家的热情最高,之后感觉看的人越来越少了。所以如果可以的话,大家可以在下面多多留言。

好了,下面进入正文。

函数

我们经常在同一个程序中多次复用相同的代码,函数可以很好的帮助我们完成这一点。

函数的定义

使用关键字def来定义一个函数

我们来看一个简单的函数的例子

#下面这个函数接受一个字符串和一个字母作为参数,返回这个字符串中有这个字母的个数

defchar_count(str,char):

return str.count(char)

#函数的调用

char_count('helloworld','o')

参数的传递

函数中参数顺序是定义时指定的,如果不按照顺序传入参数,必须使用参数名进行传参

defanimal_feature(animal,feature):

print(animal,'can',feature)

animal_feature('eagle','fly')#按顺序输入参数

>>eagle can fly

animal_feature(feature='fly',animal='eagle')#不按顺序输入参数

>>eagle can fly

默认参数值

函数的参数可以有默认的默认值,也就是说如果我们没有给指定参数变量任何值则会赋其默认值

defanimal_feature(animal,feature='fly'):

print(animal,'can',feature)

animal_feature('eagle')

>>eagle can fly

注意

·默认参数后面不能再有普通参数,比如f(a,b=10,c)就是错误的,应该写成f(a,c,b=90)

可变长的参数

可变参数的使用方法就是在参数列表前加*

比如我们要传入一些数字,返回这些数字的和

defnum_total(*list1):

num = 0

for i in list1:

num = num+i

return num

num_total(1,2,3,4,5)

num_total(1)#这里输入的参数个数是可变的

函数中修改参数值

首先我们说明一下函数传值函数传引用

函数传值

函数参数传值的意思是函数调用过程中,在函数内部使用到的参数只是一个局部变量,在函数执行结束后就销毁了。不影响调用该函数的外部参数变量的值。

函数传引用

函数参数传引用的意思是传递给函数的参数就是外部使用的参数,函数执行过程中对该参数进行的任何修改都会保留,当函数调用结束后,这个参数被其他代码使用中都是函数修改过后的数据。

在python中,参数是没有类型的,可以传递任何类型的对象作为参数,但是不同类型的参数在函数中的修改,表现也是不一样的。

·不可变对象:数值、字符串、元组等

·可变对象:列表、字典等

num = 1

list1 =[1]

defchange_data(num,list1):

num*2

list1.extend([2,3])

num #num的值没有改变,因为num是不可变类型

list1#list1的值发生改变,因为list1是列表,是可变对象

变量的作用域

关于变量的作用域不准备讲了,与c语言里类似,差不多就是除非是全局变量(global),否则函数里变量改变不影响函数外面变量的值

可以看一下下面这个例子,与上面函数修改参数值进行类比

num = 1

list1 =[1]

defchange_data(num,list1):

num = 2 #这里num是函数内部的局部变量

list1 = [1,2,3]#这里list1是函数内部的局部变量,所以list1改变不改变外部变量的值

num

list1

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180315G0MFWN00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券