函数 假如我们写代码实现了三个数相加的功能(a+b+c),要在其他几个地方都要使用,那就需要复制粘贴过去。三个数相加的功能比较简单,代码也很短,复制粘贴似乎也没什么。
可是如果我们要实现一个复杂的功能,写了一百行代码来实现,在其他地方重复使用的话,复制就显得代码臃肿、可读性差。
于是就引入了函数,函数就是封装好的,可重复使用的,用来实现单一,或相关联功能的代码段。
函数能提高代码的重复利用率,使得代码可读性更高。
之前我们使用的print,实际上就是python内置的函数。
如何定义一个函数 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
def my_name(): print("张三")函数调用函数调用很简单,直接在开发环境中引用函数名+()就可以了。
my_name()输出结果:
张三参数传递 f(x) = x + 1这是中学学习的方程式,x是这个方程的参数。
函数也可以有参数,而且可以有多个不同类型的参数。
def print_name(name1, name2): print(name1, name2)# 调用该函数print_name('李四', '王五')输出结果:
李四 王五函数返回值 —— return 语句上面定义的函数并没有返回值,但是有时候我们调用一个函数,需要得到这个函数的返回值。
这就用到了return 语句。
# 实现三个数相加功能的函数,并将结果返回def my_func(a, b, c): result = a + b + c return result我们调用这个函数,并传三个参数给它:
# 函数的返回值赋值给res,然后打印出来res = my_func(1, 2, 3)print(res)输出结果:
6
变量作用域我们知道一个方程式的参数只在当前方程中有效,换到另一个方程式是无法使用的。
比如,f(x) = x + 1, g(x) = x + 2。我们传 x = 3 代入方程f,f(3) = 3 + 1,结果是4。但是方程g并不能使用这个参数3。
这就是函数中的局部变量。
还有一个公用的值,比如PI=3.14。在很多方程式中使用,为了方便,我们把它定义成一个常量,所有方程式可以随便使用。
这就是函数中的全局变量。
局部变量局部变量定义在函数的内部,而全局变量定义在函数的外部。
#局部变量def func(x): result = x + 1 return result#调用函数result = func(3)print(result) 打印结果:
4在函数外调用局部变量可以吗?
print(x)打印结果:
NameError: name 'x' is not defined可见局部变量只能在定义它的函数内使用。
#全局变量pi = 3.14def func2(r): # 圆的面积公式 result = pi * (r^2) return result#调用函数result = func2(5)print(result)print(pi)打印结果:
21.983.14从上面的例子中可以看到,在函数外部定义的全局变量可以在函数内外随意使用
默认参数默认参数,顾名思义就是在定义函数的同时赋给参数一个默认值,在调用函数时可以传参也可以不传。
# y就是默认参数def func3(x, y=1): result = x + y return result#调用函数res1 = func3(2) #不传参,就使用默认参数y=1res2 = func3(2, 3) #传参,就使用传入的参数y=3print(res1)print(res2)打印结果:
35