函数是组织好的、可重复使用的用来实现单一或相关联功能的代码段。函数能提高应用的模块性和代码的重复利用率。我们已经知道Python提供了许多内建函数,例如print()函数。但我们也可以自己创建函数,该函数称为用户自定义函数。
我们可以定义一个具有自己想要的功能的函数,定义函数的规则如下:
·函数代码块以def关键词开头,后接函数标识符名称和圆括号“()”。
·任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
·函数的第一行语句可以选择性地使用文档字符串——用于存放函数说明。
·函数内容以冒号“:”起始,并且缩进。
·return[表达式]结束函数,选择性地返回一个值给调用方,不带表达式的return相当于返回None。
定义一个函数的整个结构如图2-22所示。
Python定义函数使用def关键字,一般格式为
def函数名(参数列表): 函数体
图2-22 定义函数结构
默认情况下,参数值和参数名称是按函数声明中定义的顺序匹配起来的。
【例2-14】 计算面积函数。
#计算面积函数 def area(width,height): return width * height def print_welcome(name): print("Hello",name) print_welcome("Python") w=3 h=4 print("width(宽)=",w,"height(长)=",h,"area(面积)=",area(w,h))
运行程序,输出如下:
Hello Python width(宽)=3 height(长)=4 area(面积)=12
定义一个函数,即给了函数一个名称,指定了函数里包含的参数和代码块结构。这个函数的基本结构完成以后,可以通过另一个函数调用执行,也可以直接通过Python命令提示符执行。
【例2-15】 演示如何将自定义的my_len()函数封装成一个函数。
#自定义my_len()函数 def my_len(str): length=0 for c in str: length=length+1 return length #调用自定义的my_len()函数 length=my_len("https://hao.360.com/") print(length) #再次调用my_len()函数 length=my_len("https://hao.360.com/?src=hj_llqzq&ls=1") print(length)
运行程序,输出如下:
20 38
值得注意的是,与其他编程语言中函数相同,Python函数支持接收多个(≥0)参数,不同之处在于,Python函数还支持返回多个(≥0)值。
例如,上面程序中,在自定义my_len(str)函数时,为其设置了1个str参数,同时该函数经过内部处理,会返回1个length值。