函数是什么
表示的就是显示生活中的行为
函数当定义的的时候不会立即执行
而是调用函数的时候, 函数才会执行。
函数的意义
- 函数表示的就是一种行为操作,就是封装了一段代码,如果我们需要使用这段代码就可以通过函数名称直接调用函数,来执行封装的代码。
- 降低了代码的重复量,提高了代码的重复使用性能。
- 函数的定义: 封装了一段代码的代码块,可以通过名称调用这段代码块。
-
函数语法
def 函数名称([参数]):
函数中要执行的代码
【return 返回值】 -
函数的返回值
- 不需要参数, 不需要返回值的参数
# 关窗户的函数: 不需要参数, 不需要返回值
def closeWindow():
print("关窗户")
- 需要参数, 不需要返回值的函数
# 买气球的函数: 需要参数, 但不需要返回值
def buyBubble(money):
print("买了%s块钱的气球" %money)
- 不需要参数, 需要返回值的函数[return 返回结果]
# 去快递的函数:不需要参数, 需要返回值的函数
def getBox():
print("开始过去去快递")
return "拿到快递"
- 需要参数, 需要返回值的参数
# 货到付款取快递
def getBoxes(money):
print("开始过去去快递, 付款%s" % money)
return "获取到的快递"
- 函数的调用
- 调用没有参数没有返回值的函数
closeWindows()
2.调用有参数没有返回值的函数
buyBubble(50)
- 调用没有参数,但是有返回值的函数,返回值要在函数执行完赋值给变量。
box = getBox()
print(">>>%s" % box)
- 调用有参数有返回值的函数
boxes = getBoxes(100)
print(">>>>>%s" % boxes)
-
函数调用的流程图
image.png
声明函数的时候,我们需要分析函数是否需要某些资源才能正常执行,否则会出现错误; -
形式参数
就是形式上/名义上需要的这个资源才能执行,这个参数简称 形参 -
实际参数
调用函数,发现函数需要提供资源数据才能执行, 此时调用函数时就需要传递一个具体的数据。实际存在的具体数据
这个具体的数据,简称 实参
-
变量
程序中临时存储数据的容器[程序运行过程中,可以存储数据,一旦程序停止运行, 程序中的变量中的数据就会丢失] -
全局变量
声明在函数外部的变量,在任何地方都可以使用访问
函数中可以直接访问全局变量,但不能直接全局变量就行修改。
可以使用global关键字,将全局变量分配到函数中进行使用。 -
局部变量
声明在函数内部的变量, 在函数内部可以访问。
通常情况在函数中用于临时存储数据,用于惊醒数据运算。当函数执行完成,这个变量就可以丢弃了。
函数参数默认值
正常情况下,函数中定义了需要几个参数,在调用的时候,就必须传递几个数据。
我们可以给函数的参数设置默认值,如果这个参数没有被传递,就可以是用默认值
def test(arg1, arg2="帅帅"):
print("打印函数接受的数据: %s, %s " %(arg1, arg2))
test("zhuzhu", "hahah")
test("zhuzhu")
结果是:
“zhuzhu”, "hahah"
"zhuzhu", "帅帅"
传递数据是以传递的数据为主
不传递时以默认值为主
注意: 没有默认值参数,不能跟在有默认值参数的后面。
函数的可变参数
- 基本语法
参数前面加个*。 表示这个变量可以接受0-多个数据。
可变参数接收到的数据,封装在一个元组中,可以通过下标获取数据
同时传固定参数和可变参数: 固定参数在前,可变参数在后。
def test(*info):
print("函数接受到的参数数据" )
print(info)
print("~~~~~~~~~~~~~~~~~~~")
test() # 没有参数
test("hello") # 有两个参数
test("hello", "python") # 有两个参数
test("jerry", 48, "tom and jerry") # 传递不同的参数
image.png
关键字参数(高级的可变参数)
需要在传递数据的时候,给每个参数添加一个变量名称。
可变参数,在参数的前面添加:**
关键字参数,同样也是可变参数,必须放在参数列表的最后
和普通的可变参数不同的是:关键字参数,传递数据时必须添加K=V的形式
接收到的数据,会封装成字典在函数中使用。
def test(**msg):
print("接受到的数据: ")
print(msg)
test(name = "jerry")
test(name = "jerry", age= 48)
test(name = "tom", age= 50, sex="man")
image.png
函数中的万能参数
可以接受任何数据当成参数
def test2(*args, **keys):
print("这个函数,可以接受任何参数")
print(args, keys)
test2()
test2("tom", "jerry")
test2(name= "tom", name1="jerry")
test2(48, name="shuke")
image.png
返回值操作
- 这是数据一致的情况下。
# 定义一个计算缩放的函数 矩形
def zoom(width, height, scale):
w = width * scale
h = height * scale
return [w, h]
squ = [10, 20]
s = zoom(squ[0], squ[1], 0.5)
print(s)
image.png
- 如果数据不一致
可以同时返回多个结果
def zoom(width, height, scale):
w = width * scale
h = height * scale
return w, h
squ = [10, 20]
s = zoom(squ[0], squ[1], 0.5)
# x, y = zoom(squ[0], squ[1], 0.5) 也可以用两个数据接受。
print("计算结果: %s, %s" %(x, y))
网友评论