python之路——9
王二学习python的笔记以及记录,如有雷同,那也没事,欢迎交流,wx:wyb199594
学习内容
1.文件处理
1.打开文件
open(‘路径’,‘打开方式’)
打开方式 r w a r+ w+ a+
ps: r+ 打开文件直接写,和读完再写不一样,光标会变
1.操作文件
a.读
read 一次性
readline 一行一行, 不知道在哪里结束
#视频 图片 rb打开 按照字节读
readlines 一次性读
for 循环-----最好用
b.写
write
c.光标 -----文件指针
seek 指定位置
tell 获取位置
truncate 截取文件
d.关闭
close
e.文件无法被直接修改,可以读—写—删除—重命名—— 完成
2.函数
a.没有返回值 (None)
1.不写return
2.只写return :return后面的函数体不执行
3.return None
b.返回一个值
任何数据类型,
c.返回多个值
return a,b,... 多个返回值需要多个变量分别接受
用一个变量接受,则以元祖形式存在
a.参数
实际参数,形式参数
参数设置
1.无参数
2.一个参数
3.多个参数, 位置参数,
实际参数角度:按照位置传,或者关键字传
形式参数角度:必须传,数量相同
4.定义函数时:
位置参数
默认参数,关键字参数
动态参数,*args位置传参 **kwargs 接受任意多个关键字参数
重要:顺序:位置参数+动态参数*args+默认参数+**kwargs
动态参数:
def func(*args): #组合序列 **kwargs 同样原理,打散字典
print(args)
func(1,2,3,4,5)
l = [1,2,3,4,5]
func(*l) #打散序列
a.函数注释
'''
函数功能
参数意义要求
返回值
'''
代码区
1.考试题

1.数字字母下划线任意组合,数字不能大头 2.1字节=8位 3.3字节 24位,2字节 16位 4. append 5.int 0 str'' list[] tuple{} dic{} 6.python2 复杂,重复代码多;编码方式不同; 7. l3 = li[0:-1:2] l4 = li[1:6:2] l5 = li[-1:6:-1] l6 = li[5:0:-2] 8a. lis[0][1][2]['k1'][0] = 'TT' lis[0][1][2]['k1'][0] = lis[0][1][2]['k1'][0].upper() lis[0][1][2]['k1'][1] = '100' lis[0][1][2]['k1'] = ['TT', 3, 101] 8b. dic['k2'].append('23') dic['k2'].insert(0, 'a') dic[(1, 2, 3, 4, 5)].setdefault('k4', 'v4') dic[(1, 2, 3, 4, 5)].setdefault((1, 2, 3), 'ok') dic[(1, 2, 3, 4, 5)]['k3'][2] = 'qq' 9. int--str 直接转换 int--bool 0-False 其余True str--bool 空''- False 其余为True str--list split 10. s = li[0] + li[1] + li[2] print(''.join(li)) print('*'.join(li)) print(s.split('l', 1)) 11. count = 0 sum = 0 while count < 99: count += 1 if count %2 == 0: sum = sum - count else: sum = sum + count print(sum) sum1 = 0 for i in range(100): if i % 2 == 0: sum1 = sum1 - i else: sum1 = sum1 + i print(sum1) 12.for i in range(100, -1, -1): print(i) 13.s = 'a1a2a3a4a5a6' count = 0 x = 0 for i in s: if i.isdigit() and count % 2 == 1: x += 1 count += 1 print(x) 14.li = [11, 22, 33, 44, 55, 77, 88, 99] result = {} for row in li: result.setdefault('k1', []) result.setdefault('k2', []) if row < 66: result['k1'].append(row) else: result['k2'].append(row) print(result) 14b.li = [11, 22, 33, 44, 55, 77, 88, 99] result = {} for row in li: if row > 66: if 'key1' not in result.keys(): result['key1'] = [] result['key1'].append(row) else: if 'key2' not in result.keys(): result['key2'] = [] result['key2'].append(row) print(result) 15.li = ['taibai', 'alexC', 'AbC', 'egon', 'Ritian', 'Wusir', ' aqc'] res = [] for i in range(len(li)): li[i] = li[i].strip() if li[i][-1] == 'c' and li[i].capitalize()[0] == 'A': res.append(li[i]) print(li) print(res) 16.count = '5+8+7 +1' li = count.split('+') dic = {'最终计算结果': None} sum = 0 for i in li: sum = sum + int(i) dic['最终计算结果'] = sum print(dic)
2.‘’修改‘’文件
with open('log', encoding='utf-8') as f, open('log.bak','w',encoding='utf-8') as f2: for line in f: if '小刘' in line: line = line.replace('小刘', '123') print(line) f2.write(line) import os os.remove('log') os.rename('log.bak', 'log')