一、函数初识
-
函数初识
1.1 面向对象的编程
代码重复
代码可读性不高
获取列表的元素的个数 l1 = [1, 2, 3] count = 0 for i in l1: count += 1 print(count)
1.2 函数
函数是以功能为导向,一个函数封装一个功能。减少了代码的重复性,增强了代码的可读性。
li = ['1','a','ad','sfe','sef'] def new_len(): count = 0 for i in li: count += 1 print(count) new_len()
-
函数的结构
def 关键字:定义一个函数,紧跟一个空格
new_len 函数名:与变量命名规范一致,必须具备可描述性(能够体现函数实现的功能)
():结构需要,传参使用,:分割符
-
函数的调用
即函数的执行,def new_len()仅为函数的定义,表示在当前步骤定义了一个函数,但只要没有执行语句此函数不会执行。
new_len() 函数名+()作为函数的执行者也叫调用者,完成对函数的调用功能。
new_len() new_len() new_len() 结果: 5 5 5
函数的执行写多少次函数就执行多少次。
-
函数的返回值
函数中return语句用来表示函数执行结束,并将函数执行结果返回到函数调用处。
return后不跟值,表示函数执行终止,结束函数,默认返回值为None
函数中没有return,返回值也为None
def new_len(): count = 0 for i in li: count += 1 print(new_len()) 结果: None
return后跟单个值,函数执行者得到的是这个值
def func(): print(123) return 321 print(func()) 结果: 123 321
return后面是多个值,函数执行者得到的是一个元组
def func(): print(123) return 1,"a",[1,2,3] print(func()) 结果: 123 (1, 'a', [1, 2, 3])
-
函数的传参
1.1 函数的传参可使函数具备可拓展性,函数是以功能为导向的,写在函数中的代码是死的,但可以通过传参使其变成像变量一样赋不同的值产生不同的结果。
def new_len(a): #定义函数时:参数:形参。 count = 0 for i in a: count += 1 return count li = ['1', 234, 1] print(new_len(li))# 函数的调用者:参数 实参。 结果: 3
1.2 实参
放在函数调用部分的参数称为实参,可分为位置参数、关键字参数、混合参数
位置参数:从左往右,按照顺序,一一对应
def meet(sex,age,job): print('左划一下') print('右划一下') print(f'寻找性别{sex},年龄{age}岁,{job}') print('聊天') print('约吗') print('约...') meet('女','18-25','讲师') 结果: 左划一下 右划一下 寻找性别女,年龄18-25岁,讲师 聊天 约吗 约...
关键字参数:一一对应
def meet(sex,age,job,hight,weight): print('左划一下') print('右划一下') print(f'寻找性别{sex},年龄{age}岁,工作{job},身高{hight},体重{weight}') print('聊天') print('约吗') print('约...') meet(sex='女',age='18-25',job='学生',hight='170',weight='120') 结果: 左划一下 右划一下 寻找性别女,年龄18-25岁,工作学生,身高170,体重120 聊天 约吗 约...
混合参数:关键字参数一定在位置参数后面,一一对应。
def meet(sex,age,job,hight,weight): print('左划一下') print('右划一下') print(f'寻找性别{sex},年龄{age}岁,工作{job},身高{hight},体重{weight}') print('聊天') print('约吗') print('约...') meet('女','18-25','学生',hight='170',weight='120') 结果: 左划一下 右划一下 寻找性别女,年龄18-25岁,工作学生,身高170,体重120 聊天 约吗 约...
1.3 形参
放在函数定义部分的参数成为形参,可分为位置参数、默认参数、动态位置参数、动态关键字参数
位置参数:与实参角度位置参数一样
默认参数:一定在位置参数后面,不传参数即沿用默认的参数。
# open('文件的改',encoding='utf-8') def meet(age,job,sex='女'): print('左划一下') print('右划一下') print(f'寻找性别{sex},年龄{age}岁,{job}') print('聊天') print('约吗') print('约....') # meet('18~25','幼师') # 更改默认参数 # meet('18~25','幼师',sex='laddy_boy') meet('18~25','幼师','laddy_boy')