day3-编程方法、函数、函数参数及调用
一、编程方法
1. 面向对象--类--class
2. 面向过程--过程--def(没有返回值的参数)
3 .函数式编程--函数--def
二、函数
函数三大优点:
1. 代码重用
2. 保持一致性
3. 可扩展性
三、函数参数及调用
1. return
两个作用:
a. 需要用一个变量来接受程序结束后返回的结果
b. 作为结束符终止程序运行
如果函数:
没有定义,返回值数=0,返回:None
只定义了1个返回值,返回值=1 ,返回:定义的那个值,或者说定义的那个object
定义了2个以上,返回值 > 1,返回:1个元组(tuple)
2. 形参、实参、位置参数、关键字参数、默认参数
形参:指的是形式参数,是虚拟的,不占用内存空间,形参单元只有被调用的时才分配内存单元
实参:指的是实际参数,是一个变量,占用内存空间,数据传递单向,实参传给形参,形参不能传给实参
位置参数:实际参数和形式参数一一对应
关键字参数:不需要一一对应,指定形参调用实参
默认参数:调用函数的时候,默认参数非必须传递
1 # x,y是形参 2 def test(x,y): 3 print(x) 4 print(y) 5 6 # 1,2是实参 7 test(1,2) 8 9 test(1,2) #位置参数,与形参一一对应 10 test(3, y=2) #既有关键字参数又有位置参数时,先按照位置参数来,关键参数不能写在位置参数前面 11 test(y=2,x=1) #关键参数,与形参顺序无关 12 13 # 默认参数 14 def test(x,y=2): 15 print(x) 16 print(y) 17 18 test(1,3)
3. 参数组
1 # *args:非固定位置参数,接收N个位置参数,转换成元祖的形式 2 def test(*args): 3 print(args) 4 5 test(1,2,3,4,5) #可接收多个实参,把多个实参放到元祖里 6 test(*[1,2,3,4,5]) # args=tuple([1,2,3,4,5]),与上面一致 7 print "-"*30 8 9 # **kwargs: 非固定关键字参数,接收N个关键字参数,转换成字典的形式 10 def test2(**kwargs): 11 print(kwargs) 12 13 test2(name='a',age=8) #接收多个关键字参数 14 test2(**{'name':'a','age':8}) #接收字典 15 print "-"*30 16 17 # 位置参数+非固定关键字参数 18 def test3(name, **kwargs): 19 print(name) 20 print(kwargs) 21 22 test3('a') #只填位置参数 23 test3('a',age=18,sex='m') #组合,先传位置参数 24 print "-"*30 25 26 # 位置参数+默认参数+非固定关键字参数 27 def test4(name, age=18, **kwargs): 28 print(name) 29 print(age) 30 print(kwargs) 31 32 test4('a',sex='m',age=3) #组合,先传位置参数,后传非固定参数 33 test4('a',4,sex='m') #组合,先传位置参数,后传非固定参数 34 35 >>> 36 (1, 2, 3, 4, 5) 37 (1, 2, 3, 4, 5) 38 ------------------------------ 39 {'age': 8, 'name': 'a'} 40 {'age': 8, 'name': 'a'} 41 ------------------------------ 42 a 43 {} 44 a 45 {'age': 18, 'sex': 'm'} 46 ------------------------------ 47 a 48 3 49 {'sex': 'm'} 50 a 51 4 52 {'sex': 'm'}

浙公网安备 33010602011771号