本文目录
1、什么函数?
2、如何定义函数?
3、如何调用函数?
4、函数参数传递
5、函数默认参数
6、不定长参数
7、函数的返回值
8、函数的四种类型
在实际发中,如果有若干段代码的执行逻辑完全相同,那么可以考虑将这些代码抽取成一个函数,这样不仅可以提高代码的重用性,而且条理会更加清晰,可靠性更高。
1、什么函数?
函数指好的,可重复使用的,用来实现单一或相关联功能的代码段,它能够提高应用的模块化和代码的重复利用率。
Python了很多内建函数,如print()。除此之外,们还可以自己创建函数,也就自定义函数。接
下来,看一段代码:
print("*")
print("**")
print("****")
上述代码中,使用多个print()函数输出了一个三角形。如果需要在一个程序的不同位置输出这个图形,那么每次都使用print()函数输出的法不可取的。为了提高编写的效率以及代码的重用性,们可以把具有独立功能的代码块成一个小模块,这就函数。
2、如何定义函数?
在Python中,你可以定义一个自己想要功能的函数,自定义函数的语法格式如下所示
def函数名(参数列表):
“函数_文档字符串”
函数体
return表达式
基于上述格式,对函数定义的规则进行说明:
(1)函数代码块以def头,后面紧跟的函数名和圆括号()。
(2)函数名的命名规则跟变量的命名规则一样的,即只能字母、数字和下划线的任何组合,但不能以数字头,并且不能跟关键字重名。
(3)函数的参数必须放在圆括号中。
(4)函数的第1行语句可以选择性地使用文档字符串来存放函数说明。
(5)函数内容以冒号起始,并且缩进。
(6)return表达式结束函数,选择性地返回一个值给调用方。不带表达式的retu相当于返回None。
3、如何调用函数?
定义了函数之后,就相当于有了一段具有特定功能的代码,要想让这些代码能够执行,需要调用函数。调用函数的很简单,通过“函数名()”即可完成调用。
#定义一个函数,能够完成打印信息功能
defprint_info():
print("-"*20)
print("人生苦短,用python!")
print("-"*20)
#调用函数
print_info()
4、函数参数传递
在介绍函数的参数之前,们先来解决一个问题。现在要求定义一个函数,这个函数用于计算两个数的和,并把计算的结果打印出来。把上述要求转换为代码,示例代码如下:
defa():
c=11+22
print(c)
以上函数的功能计算11和22的和。此时,无论调用这个函数多少次,得到的结果永远都一样的,而且只能计算固定的两个数字的和,使得这个函数的局限性很。
为了能让定义的函数更加通用,即计算任意两个数字的和,可以在定义函数的时候两个参数,让两个参数来接收传递给函数的值。接下来,通过一个案例来演示函数如何传递参数的。
defa(a,b):
c=a+b
print(c)
上面案例中,定义了能接收两个参数的函数。其中,a为个参数,用于接收函数传递的第1个数值;b为第二个参数,接收的函数的第2个数值。这时,如果想调用a函数,则需要给函数的参数传递两个数值,如下所示为完整代码:
defa(a,b):
c=a+b
print(c)
#调用带有参数的函数时,需要在小括号中传递数据。
a(35,25)
上面代码运行结果为:
50
需要注意的,如果函数定义了多个参数,那么在调用函数的时候,传输的数据要和定义的参数一一对应。上面的案例中a=35,b=25,c=50。
5、函数默认参数
定义函数时,可以给函数的参数设置默认值,这个参数就被称为默认参数。当调用参数的时候,由于猫人参数在定义时已经被赋值,所以可以直接忽略,而其它参数必须要传入值的。
如果默认参数没有传入值,则直接使用默认的值;如果默认参数传入了值,则使用传入的新值替代。
们通过一个案例来介绍。
defprint_info(name,age=35):
#打印任何传入的字符串
print("Name:",name)
print("age:",age)
#调用print_info(name="miki")
print_info(name="miki")
print_info(name="miki",age=9)
运行结果为:
Name:miki
age:35
Name:miki
age:9
在上面案例,第1~4行代码定义了带有两个参数的print_info函数。其中,name参数没有设置默认值,age作为默认参数已经设置了默认值。在第6行调用print_into函数时,由于只传
入了name参数的值,所以程序会使用age参数的默认值;在第7行调用print_info函数时,同时传入了name和age两个参数的值,所以程序会使用传给age参数的新值。python怎么读的
需要注意的,带有默认值的参数一定要位于参数列表的最后面,否则程序会报错。例如,给print_info函数一个参数sex,放在参数列表的最后面,则报错信息如下图所示:
6、不定长参数
通常在定义一个函数时,若希望函数能够处理的参数个数比当初定义的参数个数多,此时可以在函数中使用不定长参数。其基本的语法格式如下:
def函数名([forml_args,]*args,**kwargs):
"函数_文档字符串"
函数体
return表达式
在上述格式中,函数共有3个参数。其中,formal_args为形参(也就前面所用的参数,如(a,b),*args和**kwargs为不定长参数。当调用函数的时候,函数传入的参数个数会优先匹配formal_args参数的个数。如果传入的参数个数和formal_args参数的个数相同,不定长参数会返回空的元组或字典;如果传入参数的个数比formal_args参数的个数多,可以分为如下两种情况:
(1)如果传入的参数没有指定名称,那么*args会以元组的形式存放这些多余的参数
(2)如果传入的参数指定了名称,如m=1,那么*kwargs会以字典的形式存放这些被命名的参数,如{m:1}。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论