函数
思考:下列代码的问题
print('欢迎大哥光临红分分')
print('男宾100位')
print('欢迎大哥光临红分分')
print('男宾100位')
print('欢迎大哥光临红分分')
print('男宾100位')
print('欢迎大哥光临红分分')
print('男宾100位')
定义函数
定义函数的格式如下:
def 函数名():
代码
示例:
# 定义一个函数,能够完成打印信息的功能
def f1():
print('欢迎马大哥光临红浪漫')
print('男宾2位')
调用函数
定义了函数之后,就相当于有了一个具有某些功能的代码,想要让这些代码能够执行,需要调用它
调用函数很简单的,通过 函数名 () 即可完成调用
# 定义完函数后,函数是不会自动执行的,需要调用它才可以
f1()
函数定义好以后,函数体里的代码并不会执行,如果想要执行函数体里的内容,需要手动的调用函数。
每次调用函数时,函数都会从头开始执行,当这个函数中的代码执行完毕后,意味着调用结束了。
函数参数
思考一个问题,如下:
现在需要定义一个函数,这个函数能够完成2个数的加法运算,并且把结果打印出来,该怎样设计?下面的代
码可以吗?有什么缺陷吗?
def add2num():
a = 11
b = 22
c = a+b
print(c)
为了让一个函数更通用,即想让它计算哪两个数的和,就让它计算哪两个数的和,在定义函数的时候可以让函数接
收数据,就解决了这个问题,这就是 函数的参数
定义、调用带有参数的函数
定义一个add2num(a, b)函数,来计算任意两个数字之和:
def add2num(a, b):
c = a+b
print c
add2num(11, 22) # 调用带有参数的函数时,需要在小括号中,传递数据
注意点:
在定义函数的时候,小括号里写等待赋值的变量名
在调用函数的时候,小括号里写真正要进行运算的数据
调用函数时参数的顺序
定义时小括号中的参数,用来接收参数用的,称为 “形参”
调用时小括号中的参数,用来传递给函数用的,称为 “实参”
函数返回值
“返回值”介绍
现实生活中的场景
我给儿子10块钱,让他给我买个冰淇淋。这个例子中,10块钱是我给儿子的,就相当于调用函数时传递到参
数,让儿子买冰淇淋这个事情最终的目标,我需要让他把冰淇淋带回来,此时冰淇淋就是返回值
综上所述:
所谓“返回值”,就是程序中函数完成一件事情后,最后给调用者的结果
带有返回值的函数
想要在函数中把结果返回给调用者,需要在函数中使用return
如下示例:
def add2num(a, b):
c = a+b
return c # return 后可以写变量名
或者
def add2num(a, b):
return a+b # return 后可以写计算表达式
保存函数的返回值
在本小节刚开始的时候,说过的“买冰淇淋”的例子中,最后女儿给你冰淇淋时,你一定是从女儿手中接过来 对么,
程序也是如此,如果一个函数返回了一个数据,那么想要用这个数据,那么就需要保存
保存函数的返回值示例如下:
#定义函数
def add2num(a, b):
return a+b
#调用函数,顺便保存函数的返回值
result = add2num(100,98)
#因为result已经保存了add2num的返回值,所以接下来就可以使用了
print(result)
结果:
198
局部变量
什么是局部变量
如下图所示:
局部变量,就是在函数内部定义的变量
其作用范围是这个函数内部,即只能在这个函数中使用,在函数的外部是不能使用的
全局变量
如果一个变量,既能在一个函数中使用,也能在其他的函数中使用,这样的变量就是全局变量
# 定义全局变量
a = 100
def test1():
print(a) # 虽然没有定义变量a但是依然可以获取其数据
def test2():
print(a) # 虽然没有定义变量a但是依然可以获取其数据
# 调用函数
test1()
test2()
在函数外边定义的变量叫做 全局变量
全局变量能够在所有的函数中进行访问