27.函数参数和返回值作用

  1. 函数参数和返回值作用
    1. 返回值
    2. 函数参数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
def test2(a, b, *args, **kwargs):
print(a)
print(b)
print(args)
print(kwargs)
输出:
11
22
(33, 44)
{'name': 'laowang', 'age': '18'}


def test1(a, b, *args, **kwargs):
print(a)
print(b)
print(args)
print(kwargs)
test2(a, b, args, kwargs) # 相当于test2(11, 22, (33, 44), { "name":"laowang", "age":18}
输出:
11
22
((33, 44), {'name': 'laowang', 'age': '18'})
{}


# test2(a, b, *args, kwargs) # 相当于test2(11, 22, 33, 44, {"name":"laowang", "age":18}
输出:
11
22
(33, 44, {'name': 'laowang', 'age': '18'})
{}


# test2(a, b, *args, **kwargs) # 相当于test2(11, 22, 33, 44, name="laowang", age=18}
输出:
11
22
(33, 44)
{'name': 'laowang', 'age': '18'}



test1(11, 22)
# 输出:
11
22
()
{}

函数参数和返回值作用

函数根据有没有参数一级有没有返回值,可以相互组合,一共有4种组合形式
1,无参数,无返回值
2,无参数,有返回值
3,有参数,有返回值
4,有参数,有返回值

函数:封装独立功能的代码,在需要时通过函数名被调用,可以直接访问全局变量
参数:外界希望在函数内部处理的数据
返回值:向外界报告函数的执行结果

定义函数时,是否接收参数,或者是否返回结果,是根据实际功能需求来决定的
1,如果函数内部处理的数据不确定,就可以将外界的数据以参数传递到函数内部
2,如果希望一个函数执行完成后,向外界汇报执行结果,就可以增加函数的返回值

返回值

元组可以包含多个数据,因此可以使用元组让函数一次返回多个值
如果函数返回的类型是元组,小括号可以省略

如果函数返回的类型是元组,同事希望单独处理元组中的元素,可以使用多个变量,一次接受函数的返回结果
注意:使用多个变量接收结果时,变量的个数应该和元组中的个数保持一致

(交换数据,右边的是一个元组,可以省去括号)
a, b = b, a

函数参数

参数是可变类型的,如果一个是使用方法,一个是使用赋值,则赋值的不变,使用方法的变

  1. 无论传递的参数是可变还是不可变,只要针对参数使用 赋值语句 ,会在函数内部修改局部变量的引用,不会影响到外部变量的引用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
def demo(num, num_list):
# 在函数内部,针对参数使用赋值语句,不会修改到外部的实参变量
num = 100
num_list = [1, 3, 5]

print(num)
print(num_list)


gl_num = 90
gl_list = [4, 5, 6]
demo(gl_num, gl_list)
print(gl_num)
print(gl_list)

执行结果

1
2
3
4
100
[1, 3, 5]
90
[4, 5, 6]
  1. 如果传递的参数是 可变类型,在函数内部,使用 方法 修改了数据的内容,同样会影响到外部的数据
1
2
3
4
5
6
7
8
9
10
11
12
def demo(num_list):
print(num_list)
print("函数内部的代码")
# 使用方法修改列表的内容
num_list.append(9) # 参数的话是没有提示方法的
print(num_list)
print("函数执行完成")


gl_list = [1, 3, 5]
demo(gl_list)
print(gl_list)

执行结果

1
2
3
4
5
[1, 3, 5]
函数内部的代码
[1, 3, 5, 9]
函数执行完成
[1, 3, 5, 9]
  1. 列表变量使用 += 不会做相加再赋值的操作,本质上是在调用列表的extend方法
    1
    2
    3
    4
    不变
    num_list = num_list +num_list

    num_list += num_list 等价于 num_list.extend(num_list)

转载请注明来源,欢迎指出任何有错误或不够清晰的表达。可以邮件至gxnucgb@qq.com

文章标题:27.函数参数和返回值作用

文章字数:851

本文作者:陈桂彬

发布时间:2019-08-04, 14:17:52

最后更新:2019-08-21, 15:10:16

原始链接:https://github.com/gxnucgb/gxnucgb.github.io/2019/08/04/27-函数参数和返回值作用/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏

github