函数介绍
函数
是代码的基本模块,其完成某个特定的功能,可以被其他代码使用。函数能够提高代码的模块化程度,更加有效地组织代码,有利于协同开发。
函数的定义和使用使用函数之前需要定义函数。有些函数是系统自带的,如print(),这些内置的函数可以直接使用而不用提前定义。如果希望拥有自己的功能模块,就需要定义自己的函数。下面是函数定义的方式:
def 函数名([参数列表]): #参数列表为可选项,可以没有,可以为形参、实参
函数体
函数定义以关键字def开始,后面跟着函数名,函数名后面是一对圆括号(),再后面是半角冒号。冒号后面是函数体,函数体一般新起一行,并且需要缩进。圆括号内是参数列表,可以没有。参数列表是用逗号分割的一组参数。
下面来定义一个简单的函数,其返回两个整数中比较大的那个值,如输入5和10,则返回10
def get_max(a,b):
if a >b:
return a
else:
return b
r = get_max(5,10)#函数的使用方法是“函数名(实际参数列表),将函数返回的值,保存到变量r里面
print(r)
函数的返回值
Python并不要求返回值的类型是统一的。也就是说,某个函数的返回值可以是多种类型。如下面的例子中,输入一个字符串,如果字符串是name,那么返回字符串表示的是名字信息;如果输入的是age,那么返回值是一个整数,用来表示年龄信息。
def get_input(info):
if info =="name":
return "xiaobai"
print("xiaobai")
if info =="age":
return 18
print(18)
get_input("name")
多数函数是带有return语句的。如果没有return语句,返回值是None。
函数的参数
多数函数是带有参数的,通过给定不同的输入参数进行不同的操作,并得到不同的返回值。Python的参数就是函数和调用者之间的通信协议。作为通信协议,最重要的是保持一致,即调用者和函数之间对参数的理解要求一致。
位置参数
函数定义了形参,调用者传入实参。要求形参和实参个数相同,顺序也相同,即形参和实参是按照位置来匹配的。
如果参数个数不同,会导致异常。
如果参数的顺序不一致,可能不会抛出异常,但计算结果不是我们预期的。如要求两个数的差,在函数定义时第一个参数表示被减数,第二个参数表示减数。但如果在调用时将顺序颠倒,第一个实参是减数,第二个实参是被减数,得到的结果就是错误的。
将实参当作字典
对于同时使用形参和实参,同样也会面临参数个数的问题。如果不确定参数个数,该如何处理呢?最简单的一个例子就是命令行参数,有些参数被指定了,有些没有被指定,从而导致实参的个数不定。为了解决该问题,可以将实参当作字典,该字典的键就是形参的名字,值就是实参。由于是字典,所以其元素个数是不定的,即有些参数可能存在也可能不存在。假定某个函数,其最多可以有3个参数key1、key2和key3,在调用时可以指定某一个参数,也可以指定某两个参数或者都指定,则该函数可以进行如下定义:
函数