函数
函数是指可以重复使用的程序片段。函数可以让代码有模块性,提高代码的重复利用率。在目前为止,我们已经使用过了不少Python提供的内建函数,比如“print()”、“rang()”、“len()”。我们也可以自己创建函数,这叫做用户自定义函数。
函数的定义
一个函数使用 def
关键字开头,之后是这个函数的名字,再是圆括号“()”,这里的圆括号用来传入参数。下一行缩进就是函数的内容, 其中第一行可以用字符串写函数的说明。最后,可选“return”作为函数的返回结果。
如下代码段所示,先定义函数,再多次调用函数。
自定义函数示例(exp12.py)
# 自定义函数示例(exp12.py)
def print_hello(): # 定义一个函数
"功能: 打印hello"
print("hello ")
return
print_hello() # 调用函数
print_hello() # 再次调用函数
执行结果如下所示:
hello
hello
函数的参数
一个函数支持传入参数,才会让这个函数更具可重复使用性。这个参数由调用函数时传入,在定义函数时,需要先设计好支持哪些参数。 如下代码段所示,几种常见的参数传入方式。
# 函数参数示例(exp13.py)
def max_num(a, b=0): # 设置b为默认参数
"功能: 打印两个数字中较大的一个"
if a>b:
print(a, "is maximun")
elif a<b:
print(b, "is maximun")
else:
print(a, "is equal to", b)
max_num(15, 17) # 正常调用函数,为默认顺序
max_num(-27) # 只传入参数a,参数b为默认值
max_num(b=-7, a=-10) # 指定传给哪一个参数
执行结果如下所示:
17 is maximun
0 is maximun
-7 is maximun
变量的作用域
编写函数时,需要注意变量的作用域,变量的作用域有两种:全局变量和局部 变量。
全局变量在函数外定义,也可在任意位置,使用 global
声明变量是全局变量,其它函数在任何位置都可以访问全局变量。
局部变量在函数内定义,只能被当前函数内部访问。
如下代码段所示:
# 变量的作用域示例(exp14.py)
x = 10 # 在函数外面,定义的变量,是全局变量,大家都可以访问
def func1():
y = 30 # 在函数里面,定义的变量,是局部变量,只能当前函数内部访问
global z # 在函数里面,使用global声明变量是一个全局变量,大家都可以访问
z = 50
print("fun1 x =", x)
print("fun1 y =", y)
print("fun1 z =", z)
def func2():
y = 40
print("fun2 x =", x) # 打印来在函数外,定义的全局变量
print("fun2 y =", y) # 打印自己定义的,局部变量
print("fun2 z =", z) # 打印global声明的全局变量
func1() # 调用函数1
func2() # 调用函数2
执行结果如下所示:
fun1 x = 10
fun1 y = 30
fun1 z = 50
fun2 x = 10
fun2 y = 40
fun2 z = 50