1.上次内容回顾
1.1 文件操作
1.1.1 文件获取(获得句柄)
f = open("文件名",mode = '',encoding = '')
mode = '文件打开方式‘
r w r+ w+ a+ rb wb ab r+b w+b a+b
最常见: r+ b+
encoding = ''文件编码
常见文件编码请自行百度
f = open('..')(返回上一层)
f = open('D:....')(文件的绝对路径)
注意:如果用'b'open,open句柄,不要写encoding
1.1.2 光标
seek()
seek(0,0)-->seek(0) 光标在开头
seek(0,2)-->seek(2) 光标在结尾
tell() 报告当前光标位置
truncate() 截断文件,保留前者,清空后者
无返回值
deeping-bug
1.1.3 文件格式整理
1.1.3.1 去空格
strip() 去掉空格
( )换行
1.1.3.2 读取
readline()
readlings()-->容易溢出导致内存爆炸
*解决内存问题:循环读取
for line in f:
1.1.3.3 with操作
with 文件操作句柄 1 as f1,
文件句柄 2 as f2:
其余文件在with结构下写
1.1.4 os 系统操作
replace():替换操作
os.remove():删除操作
os.rename():重命名操作
2.今日所学内容
2.1 函数
2.1.1 函数:对代码块的封装与定义
先定义-->后调用
2.2.2 定义函数
def 函数名 (传入参数):
函数体<-->代码块
注意:根据实际情况自行决定是否传参,
若为空,默认不传参
2.2.3 调用函数
直接使用函数名调用函数即可
注意:如定义的函数需要传递参数,注意传参
2.2.4 return
1.结束函数,后面的函数或者代码块不再继续执行,相当于break
2.可以返回一个或者多个值,返回单个值默认以对应类型串形式输出,
返回多个值默认以元组形式输出,但可以使用解包使其返回对应类型
3.若不写return 或者return后没有内容,默认返回None
4. 若return返回的是一个表达式,那么边先计算表达式然后再返回对应类型的计算结果
2.2.5 函数参数&函数的传参
2.2.5.1 定义
函数在调用是制定具体的变量的值,便是参数
2.2.5.2 函数的调用者:实参,形参
2.2.5.2.1 实参:
是调用函数时传递给函数的信息,调用时将信息传递给函数的形参;写在调用函数时,形参相应的位置,实际执行时为函数传递具体内容
2.2.5.2.2 形参:
写在函数声明处位置的变量,形式上是一个完整的参数;函数完成其工作所需要的一项信息。
2.2.5.2.3 传参:
将实际参数传递给形式参数的过程。
2.2.5.2.4 实参的类型:
位置参数 默认参数 动态参数 仅限关键字参数
2.2.5.2.4.1 位置参数
位置参数,又称形式参数,是必传参数,如果不填入,调用时会出错,
给参数一个提醒类型:调用时可以传入不同类型的参数,不受影响。
# 1. 位置参数。: 从左至右,按照顺序,一一对应 def meet(sex,age,job,): print('左划一下') print('右划一下') print(f'寻找性别{sex},年龄{age}岁,{job}') print('聊天') print('约吗') print('约....') meet('女','18~25','讲师')
2.2.5.2.4.2 默认参数
形如xxx=xxx的格式,是非必传参数,如果调用时不填,就使用定义时的默认值。
调用时填,就使用填的值。
# 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')
2.2.5.2.4.3 动态参数
是非必传参数,使用参数名前面加一个星号表示,它把传入的元素都存到一个元组里。
不限制传入参数的个数。适用于用在参数比较多的时候,通常使用args作为参数名。
def func(*args,**kwargs): # 函数的定义:*将实参角度的所有的位置参数聚合成一个元组给了args **将实参#角度的所有的关键字参数聚合成一个字典给了kwargs 聚合。 pass func(*[1,2,3],**{'name': 'alex'}) # 函数的执行:* ** 打散。
2.5.2.4.4 仅限关键字参数
是非必传参数,使用参数名前面加两个星号表示,不限制传参个数,它是把传入的参数
保存在一个字典里,如果传参,必须要传位置参数这种xx=xx的格式,否则报错。
通常使用kwargs当做变量名。
def meet(sex,age,job,hight,weight,): print('左划一下') print('右划一下') print(f'寻找性别{sex},年龄{age}岁,身高{hight},体重{weight},工作{job}') print('聊天') print('约吗') print('约....') # meet(sex='女',job='学生',weight=120,hight=170,age='18~25')
2.2.5.2.5 参数的组合使用
如果一个函数中必须要使用四种参数的两种及以上,那么一定要按照顺序写参数:
(1)位置参数(2)默认值参数(3)可变参数(4)关键字参数
# def meet(sex,age,job,hight,weight,): # print('左划一下') # print('右划一下') # print(f'寻找性别{sex},年龄{age}岁,身高{hight},体重{weight},工作{job}') # print('聊天') # print('约吗') # print('约....') # # meet('男',222,'IT python',weight=120,hight=175,)
2.2.5.3 三元运算符
三元运算又称三目运算,是对简单的条件语句(仅限于简单的判断,复杂不适用)的简写,如:
简单条件语句
class Teacher():
def __init__(self,name,age):
self.name = name
self.age = age
def compare(teacher1,teacher2):
if teacher1.age > teacher2.age:
return teacher1.name
elif teacher1.age == teacher2.age:
return '一样大'
else :
return teacher2.name
t1 = Teacher(input("请输入一号老师的姓名:"),int(input('请输入一号老师的年龄:')))
t2 = Teacher(input("请输入二号老师的姓名:"),int(input('请输入二号老师的年龄:')))
print(compare(t1,t2))
改成三元运算:
result = teacher1.name if teacher1.age > teacher2.age else teacher2.name return result
注:此三元运算表达式逻辑上不严谨,还请读者自行找出错误并加以改正