学习python -- 第012天 函数(一)

函数的定义

函数的参数传递

函数参数调用时的内存使用

1 '''
2 在函数调用过程中,进行参数的传递
3 
4 如果是不可变对象,在函数体的修改不会影响实参的值arg1的修改为100,不会影响n1的值
5 
6 如果是可变对象,在函数体的的修改会影响到实参的值arg2的修改,append(10),会影响到n2的值
7 
8 参数的变不变化取决于对象的类型
9 '''

函数返回值

函数的返回值
(1)如果函数没有返回值【函数执行完毕之后,不需要给调用处提供数据】return可以省略不写
(2)函数的返回值,如果是1个,直接返回类型
(3)函数的返回值,如果是多个,返回的结果为元组

函数的参数定义 

默认值参数

个数可变的参数

有两种

 1 #
 2 # @author:浊浪
 3 # @version:0.1
 4 # @time: 2021/4/7 9:14
 5 # 
 6 
 7 
 8 def fun(*args):
 9     print(args)
10 
11 fun(10)
12 fun(20,30,40)  # 元组形式
13 
14 def fun1(**args):
15     print(args)
16 
17 # fun1(20)  # 报错
18 fun1(a = 1)
19 fun1(a = 1, b = 2)  # 字典形式
20 
21 '''
22 def fun2(*args,*a):
23     pass
24 以上代码,程序会报错,个数可变的位置参数,只能是1个
25 
26 def fun2(**args,**args):
27     pass
28 以上代码,程序会报错,个数可变的关键字参数,只能是1个
29 '''
30 
31 def fun2(*args1, **args2):
32     pass
33 
34 '''
35 ’def fun3(**args1,*arg2):
36     pass #
37 以上代码不能执行
38 在一个函数的定义过程中,既有个数可变的关键字形参,也有个数可变的位置形参,
39 要求,个数可变的位置形参,放在个数可变的关键字形参之前
40 '''

参数总结

 1 #
 2 # @author:浊浪
 3 # @version:0.1
 4 # @time: 2021/4/7 9:25
 5 # 
 6 
 7 def fun(a, b, c):
 8     print('a=', a)
 9     print('b=', b)
10     print('c=', c)
11 
12 fun(10,20,30)  # 位置传参
13 lst = [100,200,300]
14 fun(*lst)  # 在函数调用时,将列表中的每个元素都转换为位置实参传入
15 
16 fun(a=10,b=20,c=30) # 关键字实参
17 dit = {'a':111,'b':222,'c':333}
18 fun(**dit)  # 在函数调用时,将字典中的键值对都转换为关键字实参传入
19 fun(*dit) # 这里输出会变成 a , b, c
20 
21 
22 def fun4(a,b,*,c,d):#从*之后的参数,在函数调用时,只能采用关键字参数传递
23     print('a=', a)
24     print('b=', b)
25     print('c=', c)
26     print('d=', d)
27 # 调用fun4函数
28 #fun4(10,20,30,40) #位置实参传递
29 fun4(a=10, b=20, c=30, d=40)  #关键字实参传递#
30 fun4(10, 20, c=30, d=40)#前两个参数,采用的是位置实参传递,而c,d采用的是关键字实参传递
31 '''需求,c,d只能采用关键字实参传递'''

 上述顺序都可以

认清现实,放弃幻想。 细节决定成败,心态放好,认真学习与工作。
原文地址:https://www.cnblogs.com/jyf2018/p/14626330.html