第五章 函数和代码复用
5.1 函数的基本使用
函数是一段具有特定功能的、可重用的语句组,通过函数名来表示和调用。经过定义,一组语句等价于一个函数,在需要使用这组语句的地方,直接调用函数名称即可。因此,函数的使用包括两部分:函数的定义和函数的使用。
使用函数主要有两个目的:降低变成难度和增加代码复用。函数是一种功能抽象,利用它可以将一个复杂的大问题分解成一系列简单的小问题,分而治之,为每个小问题编写程序,通过函数封装,当各个小问题都解决了,大问题也就迎刃而解。函数可以在一个程序中多个位置使用,也可以用于多个程序,当需要修改代码时,只需要在函数中修改一次,所有调用位置的功能都更新了,这种代码复用降低了代码行数和代码维护难度。
5.1.1 函数的定义
Python语言通过保留字def定义函数,语法格式如下:
def <函数名>(<参数列表>):
<函数体>
returen <返回值列表>
函数名可以是任何有效的Python标识符。
参数列表是调用该函数时传递给它的值,可以有零个、一个或多个,当传递多个参数时个参数由逗号分隔,当没有参数时也要保留圆括号。参数列表中参数是形式参数,简称为“形参”,相当于实际参数的一种符号表示或符号占位符。
函数体是函数每次被调用时执行的代码,由一行或多行语句组成。
如果需要返回值,使用保留字return和返回值列表。
函数可以没有return语句,函数体结束后会将控制权返回给调用者。
5.1.2 函数的使用
函数的定义也叫函数“声明”,定义后的函数不能直接运行,需要经过“调用”才能得到运行。语法格式如下:
<函数名>(<实际赋值参数列表>)
函数的使用一共分为四个步骤:
- 函数定义:使用def保留字将一段代码定义为函数,需要确定函数名、参数名、参数的个数、使用参数名称作为形式参数(占位符)编写函数内部的功能代码。
- 函数调用:通过函数名调用函数功能,对函数的各个参数赋予实际值,实际值可以是实际数据,也可以是在调用函数前已经定义过的变量。
- 函数执行:函数被调用后,使用实际参数(赋予形式参数的实际值)参与函数内部代码的运行,如果有结果则进行输出。
- 函数返回:函数执行后,根据return保留字的指示决定是否返回结果,如果返回结果,则结果将被放置到函数被调用的位置,函数使用完毕,程序继续运行。
5.2 函数的参数传递
5.2.1 可选参数传递
函数的参数在定义是可以指定默认值,当函数被调用时,如果没有传入对应的参数值,则使用函数定义是的默认值替代,函数定义是的语法格式如下:
def <函数名>(<非可选参数列表>,<可选参数> = <默认值>):
<函数体>
return <返回值列表>
需要注意,可选参数一般都放置在非可选参数的后面,即定义函数时,先给出所有非可选参数,然后再分别列出每个可选参数及对应的默认值。
5.2.2 参数名称传递
Python语言同时支持函数按照参数名称方式传递参数,语法格式如下:
<函数名>(<参数名> = <实际值>)
采用函数名称传递方式不需要保持参数传递的顺序,参数之间的顺序可以任意调整,只需要对每个必要参数赋予实际值即可,这种方式会显著增强程序的可读性。
5.2.3 函数的返回值
return语句用来结束函数并将程序返回到函数调用的位置继续执行。return语句可以出现在函数中的任何部分,同时可以将0个、1个或多个函数运算的结果返回给函数被调用处的变量。
函数可以没有return,此时函数并不返回值。当函数使用return返回多个值,可以使用一个变量或多个变量保存结果。语法格式如下:
变量1,变量2 = <函数名>(<实际值1>,<实际值2>)
5.3 变量的作用域
根据程序中变量所在的位置和作用范围,变量分为局部变量和全局变量。
局部变量仅在函数内部,且作用域也在函数内部。
全局变量的作用域跨越多个函数。文章来源:https://www.toymoban.com/news/detail-460447.html
5.3.1 局部变量
局部变量指在函数内部使用的变量,仅在函数内部有效,当函数退出时变量将不再存在。文章来源地址https://www.toymoban.com/news/detail-460447.html
# 变量z是函数multiply()内部使用的变量,当函数调用后,变量z将不存在。
def multiply(x, y=10):
z = x * y # z是函数内部的局部变量
return z
s = multiply
到了这里,关于第五章 函数和代码复用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!