十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!
网站建设哪家好,找成都创新互联公司!专注于网页设计、网站建设、微信开发、成都微信小程序、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了华阴免费建站欢迎大家使用!本篇文章为大家展示了什么是Python的函数,代码简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
一、函数的介绍
如果在开发程序时,需要某块代码多次,但是为了提高编写的效率以及代码的重用,所以把具有独立功能的代码块组织为一个小模块,这就是函数。
函数的语法格式:
def 函数名(): 函数的功能代码
注意:python不像其他编程语言使用{}控制作用域,python严格使用缩进控制作用域,所以在python中使用,函数要严格的控制缩进。
二、函数的调用
定义了函数之后,就相当于有了一个具有某些功能的代码,想要让这些代码能够执行,需要调用它,调用函数很简单的,通过 函数名() 即可完成调用。
def printMenu(): print("-----------------------------------") print(" 1、查询 ") print(" 2、修改 ") print(" 3、增加 ") print("-----------------------------------") #函数的调用 printMenu() #函数可以重复调用 printMenu()
运行结果为:
----------------------------------- 1、查询 2、修改 3、增加 ----------------------------------- ----------------------------------- 1、查询 2、修改 3、增加 -----------------------------------
说明:
1.函数在调用前,一定要先声明定义,才能使用函数
2.在声明定义好之后,可以在需要的地方多次调用。
3.函数的调用就是函数名(),例如代码汇总的printMenu()。
三、带有参数的函数
参数分为实参和形参两种形式:
实参 – 在调用函数的时候给函数参与运算的真实数据
形参 – 在函数声明的时候用来给真实数据做占位使用的虚拟数据
带参数函数的定义格式:
def 函数名(形参1,形参2,形参3....): 要执行的代码
举个例子:
#定义一个具有两个形式参数的函数 def sum(a,b):#a,b就是形参 result = a+b print(result) #sum()函数的调用 sum(4,5)#4,5就是真实参数
运行结果为:9
带参数函数的精髓就是,可以灵活的处理数据的运算。
四、函数的返回值
所谓“返回值”,就是程序中函数完成一件事情后,最后给调用者的结果,就像一个例子中,计算a+b的值是直接打印出来了,但是现在我不想在函数里面打印出来了,我需要在函数外面使用这个结果继续参与其他运算该怎么办呢?这就需要定义带返回值的函数了。
带返回值的函数声明定义格式:
def function(形参...): 函数执行的代码 return 返回值
举个例子:
def sum(a,b): result = a+b return result#result就是程序要返回出去的值 res = sum(4,5) print(res)
运行结果为:9
五、函数的类型
按照格式来划分有四种类型,具体可以根据使用场景合理的设计函数的类型。
1.无参无返回值函数
2.有参无返回值函数
3.无参有返回值函数
4.有参有返回值函数
六、函数的嵌套调用
一个函数里面却可以使用其他函数,这叫做函数的嵌套调用。
def printMenu(): print("-----------------------------------") print(" 1、查询 ") print(" 2、修改 ") print(" 3、增加 ") print("-----------------------------------") def main(): #在main()中调用printMenu()函数 printMenu() print("请输入你的选择:") main()
运行结果为:
----------------------------------- 1、查询 2、修改 3、增加 ----------------------------------- 请输入你的选择:
七、局部变量和全局变量
说明:上面程序中a是全局变量,b是局部变量,所以代码在第8行出错,错误提示 NameError: name ‘b’ is not defined b变量没有定义。
局部变量,就是在函数内部定义的变量。
不同的函数,可以定义相同的名字的局部变量,但是各用个的不会产生影响。
局部变量的作用,为了临时保存数据需要在函数中定义变量来进行存储,这就是它的作用。
全局变量既能在一个函数中使用,也能在其他的函数中使用,
局部变量和全局变量重名,函数内使用的是局部变量的值,不影响外面的全局变量的值。
a = 1#全局变量 print("---1---: %d"%(a)) def test1(): b = 2#局部变量,只能在test1中使用 print("---2---: %d"%(b)) def test2(): a = 3#局部变量,只能在test2中使用 b = 4#局部变量,只能在test2中使用 print("---3---: %d"%(a)) print("---4---: %d"%(b)) test1() test2() print("---5---: %d"%(a))
运行结果为:
---1---: 1 ---2---: 2 ---3---: 3 ---4---: 4 ---5---: 1
上面的例子可以看出,局部变量和全局变量重名,并不会修改全局变量的值,但是当我们在一个函数中,就需要修改全局变量的值怎么办呢?只需要在函数内使用global修饰全局变量即可。
a = 1#全局变量 print("---1---: %d"%(a)) def test1(): b = 2 print("---2---: %d"%(b)) def test2(): global a #在函数内部直接使用全局变量 a = 3 #修改全局变量的值 b = 4 print("---3---: %d"%(a)) print("---4---: %d"%(b)) test1() test2() print("---5---: %d"%(a))
运行结果为:
---1---: 1 ---2---: 2 ---3---: 3 ---4---: 4 ---5---: 3
第3次和第5次一样说明全局变量在函数内部修改成功。
八、缺省参数
定义函数的时候可以某个参数指定默认值,具有默认值的参数,就叫做缺省参数。
带有默认值的参数一定要位于参数列表的最后面。
def printInfo(name,age = 18): print("name = %s,age = %d"%(name,age)) printInfo("Se7eN_HOU") printInfo("Se7eN_HOU",28)
运行结果为:
name = Se7eN_HOU,age = 18 name = Se7eN_HOU,age = 28
第一次age未传值的时候,打印出来的是默认值18,第二次打印的是传进来的值28。
九、不定长参数
使用场景:例如定义一个求两个数之和的函数,然后在编写一个求三个数之和的函数,也就是说,这样的话每多一个数就要编写一个函数,很麻烦,这里就需要设计成为一个具有不定长参数的函数。
1、带一个 “*” 的参数
用一个星号 “ * ”修饰的参数是元组类型,在使用的时候可以将传递多来的实际有多少个参数都放在元组里面。
def sum(*agrs): result = 0 for x in agrs: result += x print(result) sum(1) sum(1,2) sum(1,2,3)
运行结果为:1、3、6
2、带两个“**”的不定长参数
用两个星号“**”修饰的参数是字典类型,在使用的时候可以以字典的形式传递多个值给到函数参与运算。
运行结果为:
十、匿名函数
用lambda关键词能创建小型匿名函数。这种函数得名于省略了用def声明函数的标准步骤。lambda函数的语法只包含一个语句,如下:
lambda [arg1 [,arg2,...,agrn]]:expression
实例如下:
sum = lambda arg1,agr2:arg1+agr2 #调用sum函数 print("sum :%d"%sum(10,20))
运行结果为:30
Lambda函数能接收任何数量的参数但只能返回一个表达式的值。
匿名函数不能直接调用print,因为lambda需要一个表达式。
使用场景
1、函数作为参数传递
def fun(a,b,opt): print("a=%s"%(a)) print("b=%s"%(b)) print("result = %s"%opt(a,b)) fun(1,2,lambda x,y:x+y)
运行结果为:
a=1 b=2 result = 3
2、作为内置函数的参数
stus = [{"name":"zhangsan","age":18},{"name":"lis","age":19},{"name":"wangwu","age":17}]
按name排序
stus.sort(key = lambda x:x["name"]) print(stus)
运行结果为:[{'name': 'lis', 'age': 19}, {'name': 'wangwu', 'age': 17}, {'name': 'zhangsan', 'age': 18}]
按age排序
stus.sort(key =lambda x:x["age"]) print(stus)
运行结果为:[{'name': 'wangwu', 'age': 17}, {'name': 'zhangsan', 'age': 18}, {'name': 'lis', 'age': 19}]
上述内容就是什么是Python的函数,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联-成都网站建设公司行业资讯频道。