Day 09函数的初识:函数的结构与调用:返回值:参数
01 今日内容大纲
- 内容回顾与作业讲解
- 函数的初始
- 函数的结构与调用
- 函数的返回值
- 函数的参数
02 昨日内容回顾
-
文件操作初识:
三部曲:
- 打开文件open()
- 操作文件(文件句柄进行操作)
- 关闭文件
- 文件的路径:path
- 编码方式:encoding
- mode
-
读,写,追加
- 读 r rb r+ r+b
- read()全部读
- readline()读一行,字符串类型,strip()去除空格\n,\t
- readlines()['第一行内容\n','第二行内容\n',]
- for循环,对文件句柄.(节省内存,新读一行,上一行内存小时,迭代器)
- read(n
- r:read(n)按字符读
- rb:read(n)按字节读
- 写:w wb w+ w+b
- w
- 没有文件创建新文件,写入内容
- 有文件,先清空在写入新内容
- w
- 追加:a ab a+ a+b
- a:没文件,创建新文件,追加内容
- a:有文件,追加新内容
- 读 r rb r+ r+b
-
r+:先读后写
-
其他功能:tell() seek() flush()
-
with open() as f1:不用手动关闭文件句柄,一个语句可以操作多个文件句柄
03 今日内容
-
函数的初识:
-
写一个获取字符串总个数的代码,不能用len:
s1 = 'fjkdsfjdssudafurpojurojregreuptotuproq[t' # python没有len count = 0 for i in s1: count += 1 print(count)
-
写一个获取列表总个数的代码:
l1 = [1, 2, 3, 4, 5, 6] count = 0 for i in l1: count += 1 # print(count)
这样写代码太low
重复代码多
代码可读性差
-
利用函数写出上面的功能:
s1 = 'fsjkdafshdjfsdhafjksda' l1 = [1,2,3,4,5,6] def my_len(s): count = 0 for i in s: count += 1 print(count) my_len(s1) my_len(l1)
-
函数: 以功能为导向,登录注册,len(),一个函数就是一个功能.随调随用
-
函数的优点:
- 减少了代码的重复性
- 增加了代码的可读性
-
-
函数的结构与调用
-
结构:def 关键字,定义函数.
meet 函数名:与变量设置相同,具有可描述性。 函数体 :缩进。函数中尽量不要出现 print
-
函数什么时候执行?
-
当函数遇到函数名()函数才会执行!!!
def meet(): print('打开tantan') print('左滑一下') print('右滑一下') print('找美女') print('悄悄话....') print('约....走起...') meet() meet() meet()
-
-
-
函数的返回值
def meet(): print('打开tantan') print('左滑一下') return print('右滑一下') print('找美女') print('悄悄话....') print('约....走起...') meet() return: 在函数中遇到return直接结束函数。 def meet(): print('打开tantan') print('左滑一下') print('右滑一下') print('找美女') print('悄悄话....') print('约....走起...') return '妹子一枚' ret = meet() print(ret) print(meet()) return 将数据返回给函数的执行者,调用者 meet()。 s1 = 'jfdkslfjsda' ret = len(s1) print(ret) def meet(): print('打开tantan') print('左滑一下') print('右滑一下') print('找美女') print('悄悄话....') print('约....走起...') # return '妹子一枚' return '妹子', 123, [22, 33] ret= meet() # ret,ret1,ret2 = meet() print(ret,type(ret)) # return 返回多个元素 是以元组的形式返回给函数的执行者。
- 返回值的总结
- 在函数中,终止函数.
- return可以给函数执行者返回值:
- return 单个值 单个值
- return 多个值 (多个值,)
- 返回值的总结
-
函数的参数
def meet(): print('打开tantan') print('进行筛选:性别:女') print('左滑一下') print('右滑一下') print('找美女') print('悄悄话....') print('约....走起...') s1 = 'jfdsklafjsda' l1 = [1,2,3] len(s1)
-
函数的传参:让函数封装这个功能,盘活.
分两个角度:实参,形参.
def meet(sex): #函数的定义:接受的参数形式参数 print('打开tantan') print('进行筛选:性别:%s' %(sex)) print('左滑一下') print('右滑一下') print('找美女') print('悄悄话....') print('约....走起...') meet('男') # 函数的执行传的参数 :实际参数
-
实参角度
-
位置参数:从左至右,一一对应.
- def meet(sex,age,skill): print('打开tantan') print('进行筛选:性别:%s,年龄:%s,%s' %(sex,age,skill)) print('左滑一下') print('右滑一下') print('找美女') print('悄悄话....') print('约....走起...') meet('女',25,'python技术好的',) 写一个函数,只接受两个int的参数,函数的功能是将较大的数返回。 def compile(a,b): c = 0 if a > b: return c else: return c print(compile(10,20)) print(compile(1000,1)) compile(1000,20) 三元与运算符: 简单的if else a = 1000 b = 2000 if a > b: c = a else: c = b print(c) a = 1000 b = 2000 c = a if a > b else b def complie(a,b): c = a if a > b else b return c def complie(a,b): return a if a > b else b
-
关键字参数:
一一对应
def meet(sex,age,skill,hight,weight,): print('打开tantan') print('进行筛选:性别:%s,年龄:%s,技术:%s,身高:%s,体重%s' %(sex,age,skill,hight,weight)) print('左滑一下') print('右滑一下') print('找美女') print('悄悄话....') print('约....走起...') meet(age=25,weight=100,hight=174,skill='python技术好的',sex='女') 函数:传入两个字符串参数,将两个参数拼接完成后形成的结果返回。 一一对应 def meet(sex,age,skill,hight,weight,): print('打开tantan') print('进行筛选:性别:%s,年龄:%s,技术:%s,身高:%s,体重%s' %(sex,age,skill,hight,weight)) print('左滑一下') print('右滑一下') print('找美女') print('悄悄话....') print('约....走起...') meet(age=25,weight=100,hight=174,skill='python技术好的',sex='女') 函数:传入两个字符串参数,将两个参数拼接完成后形成的结果返回。 def func(a,b): return a + b print(func(b='太白',a='无敌'))
-
混合参数
# 混合参数 # 位置参数一定要在关键字参数的前面。 def meet(sex,age,skill,hight,weight,): print('打开tantan') print('进行筛选:性别:%s,年龄:%s,技术:%s,身高:%s,体重%s' %(sex,age,skill,hight,weight)) print('左滑一下') print('右滑一下') print('找美女') print('悄悄话....') print('约....走起...') return '筛选结果:性别:%s,体重%s' %(sex,weight) print(meet('女',25,weight=100,hight=174,skill='python技术好的'))
-
-
形参角度:
-
位置参数
def meet(sex,age,skill): print('打开tantan') print('进行筛选:性别:%s,年龄:%s,%s' %(sex,age,skill)) print('左滑一下') print('右滑一下') print('找美女') print('悄悄话....') print('约....走起...') meet('女',25,'python技术好的',) 写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。 def func(l): if len(l) > 2: return l[:2] else: return l # print(func([1,2,3,4,5])) print(func([1,])) def func(l): c = l[:2] if len(l) > 2 else l return c print(func([1,2,3,4,5])) print(func([1,])) def func(l): return l[:2] # l1 = [1,] # print(l1[:2])
-
默认参数
默认值参数 默认参数设置的意义:普遍经常使用的。 def meet(age,skill='python技术好的',sex='女',): print('打开tantan') print('进行筛选:性别:%s,年龄:%s,技能:%s' %(sex,age,skill)) print('左滑一下') print('右滑一下') print('找美女') print('悄悄话....') print('约....走起...') # meet(25,'python技术好的',) meet(25,'运维技术好的','男') open() #'r'
-
04 今日总结
-
函数:
-
函数的作用:以功能为导向,减少代码重复,使代码可读性好
-
函数的结构,函数的执行(碰到函数名+括号才执行)
-
函数的返回值:return
- 终止函数
- 给函数的调用者返回值
-
函数的参数:
- 实参角度:
- 位置参数
- 关键字参数
- 混合参数
- 形参角度
- 位置参数
- 默认参数
- 实参角度: