第15关精华笔记

第15关精华笔记pdf版——同学记得打开电脑浏览器下载哦!

 副本_第15关精华笔记.pdf 0.4MB 

什么是编码?

计算机只认识0和1,为了更好的交流,这种从人类语言到计算机语言转换的形式,叫做编码表。数字或者字母在计算机储存的时候需要转换成二进制,每个人转换的规则就叫做编码。

人类语言 → 计算机语言 encode()

计算机语言 → 人类语言 decode()

文件读取:

牢记步骤:打开文件 —— 读取文件 —— 关闭文件

模板写法:









第二行代码是把读取到的内容存到了filecontent变量里面,下面打印出来,read()函数是将所有内容都读取出来

但也有按行读取的需求,也就是一行行,这里要利用到readlines()函数

切记用open函数最后要close()文件

写入文件:





同样要记住最后要close()

但如果加一个with关键字,如with open 作用之后,文件对象会自动找到合适时机关闭,不需要我们手动调用close()

当然写入的数据多种多样,我们要更换写入或者读取的模式,记住下面这个表很关键!!!





其他知识点:

字符串的 split()函数:

按照空格分割字符串,str.split()。 分裂之后的字符串会被以列表元素的格式被包裹

列表的的 join()函数:

把字符串合并,用法是str.join(sequence), str代表在这些字符串之中。 与split相反,把列表中的元素合并成一串字符。

读写对象的 writelines()

因为write()的参数必须是一个字符串,但是有时候我们要写入别的内容,所以用到writelines()这后面的参数可以是列表

课后练习参考答案

练习-数据转移中的变化-参考

1.编码和解码

【参考】

# 1.分别使用gbk和utf-8编码自己的名字,并将其打印出来。
print('吴枫'.encode('gbk'))
print('吴枫'.encode('utf-8'))
# 2.复制上一步得到的结果,进行解码,打印出你的名字(两次)。
print(b'\xe5\x90\xb4\xe6\x9e\xab'.decode('utf-8'))
# 3.使用gbk解码b'\xb7\xe7\xb1\xe4\xbf\xc6\xbc\xbc\xd3\xd0\xd2\xe2\xcb\xbc',并打印出来。
print(b'\xb7\xe7\xb1\xe4\xbf\xc6\xbc\xbc\xd3\xd0\xd2\xe2\xcb\xbc'.decode('gbk'))

2.通过文件读写,复制图片

【参考】

# 先打开图片
with open('photo1.png','rb') as file:  # 以“rb”模式打开图片
    data = file.read()
    with open('photo3.png','wb') as newfile:  # 以“wb”模式写入
        newfile.write(data)

2.在读写之间处理数据-2

【参考】

file1 = open('scores.txt','r',encoding='utf-8') 
file_lines = file1.readlines() 
file1.close()
final_scores = []
for i in file_lines:
    data =i.split()
    sum = 0  # 先把总成绩设为0
    for score in data[1:]:  # 遍历列表中第1个数据和之后的数据
        sum = sum + int(score)  # 然后依次加起来,但分数是字符串,所以要转换    
    result = data[0]+str(sum)+'\n'  # 结果就是学生姓名和总分
    print(result)
    final_scores.append(result)
print(final_scores)
sum1 = open('winner.txt','w',encoding='utf-8') 
sum1.writelines(final_scores)
sum1.close()

2.在读写之间处理数据-2

【参考】

file1 = open('winner.txt','r',encoding='utf-8')
file_lines = file1.readlines()
file1.close()
dict_scores = {}
list_scores = []
final_scores = []
# print(file_lines)
# print(len('\n'))
# 打印结果为:['罗恩102\n', '哈利383\n', '赫敏570\n', '马尔福275\n']
# 经过测试,发现'\n'的长度是1。所以,名字是“第0位-倒数第5位”,分数是“倒数第4位-倒数第二位”。
# 再根据“左取右不取”,可知:name-[:-4],score-[-4:-1]
for i in file_lines: # i是字符串。
print(i)
name = i[:-4] # 取出名字(注:字符串和列表一样,是通过偏移量来获取内部数据。)
score = int(i[-4:-1]) # 取出成绩
print(name)
print(score)
dict_scores[score] = name # 将名字和成绩对应存为字典的键值对(注意:这里的成绩是键)
list_scores.append(score)
# print(list_scores)
list_scores.sort(reverse=True) # reverse,逆行,所以这时列表降序排列,分数从高到低。
# print(list_scores)
for i in list_scores:
result = dict_scores[i] + str(i) + '\n'
# print(result)
final_scores.append(result)
print(final_scores) # 最终结果
winner_new = open('winner_new.txt','w',encoding='utf-8')
winner_new.writelines(final_scores)
winner_new.close()

练习-古诗默写-参考

练习目标

这个练习,会让你学会一种方法,可以直接修改原文件中的数据。

练习要求

语文老师将一些古诗存在txt文档里,一句一行。

最近,他计划抽一些古诗,自己设置一些空来让学生默写。

请你用代码帮老师完成这项工作(只要处理了一个文档,加上循环就能处理无数个文档了)。

【讲解】

明确目标很重要(所以重复三遍)。

做到后面的步骤,可再点开左侧的“练习介绍”查看。

我们以李商隐的《锦瑟》为例,这是原文档里的内容:

锦瑟

[唐] 李商隐

锦瑟无端五十弦,

一弦一柱思华年。

庄生晓梦迷蝴蝶,

望帝春心托杜鹃。

沧海月明珠有泪,

蓝田日暖玉生烟。

此情可待成追忆,

只是当时已惘然。

老师在这首诗想考学生“一弦一柱思华年。”和“只是当时已惘然。”,即他想得到的是:

锦瑟

[唐] 李商隐

锦瑟无端五十弦,

____________。

庄生晓梦迷蝴蝶,

望帝春心托杜鹃。

沧海月明珠有泪,

蓝田日暖玉生烟。

此情可待成追忆,

____________。

【提示】

为了让代码逻辑简洁且便于更新,可以将需要默写的诗句都放到一个表格里。

另外,当遇到默写诗句时,可以用英文的下划线去替代(____________)。

【解答】

list_test = ['一弦一柱思华年。\n','只是当时已惘然。\n']
with open ('poem2.txt','r') as f:
    lines = f.readlines()
print(lines)
with open('poem2.txt','w') as new:
    for line in lines:
        if line in list_test:
            new.write('____________。\n')
        else:
            new.write(line)
(0)

相关推荐

  • Python常用配置文件ini、json、yaml读写总结

    原创 吾非同 吾非同 3天前 开发项目时,为了维护一些经常需要变更的数据,比如数据库的连接信息.请求的url.测试数据等,需要将这些数据写入配置文件,将数据和代码分离,只需要修改配置文件的参数,就可以 ...

  • python笔记第五次

    时间戳.时间元组.时间字符串之间的转换 import random print(random.randint(1,43)) import time 1.将时间戳-> 时间元组 gmtime -& ...

  • 第13关精华笔记

    类的继承和定制 1.类的继承(复制) 类的继承,即让子类拥有了父类拥有的所有属性和方法  2.类的定制(复制后自己看着改) 子类也可以在继承的基础上进行个性化的定制,包括: 创建新属性.新方法 修 ...

  • 第18关精华笔记

    第18关精华笔记pdf版--同学记得打开电脑浏览器下载哦!  第18关精华笔记.pdf 0.3MB  本关的主要目的,是让大家在代码的设计上更有框架条理. 先把功能框架理清,再丰富每个部分的细节. ...

  • 第17关精华笔记

    第17关精华笔记pdf版--同学记得打开电脑浏览器下载哦! 第17关精华笔记.pdf 0.6MB  代码功能块拆解 登录邮箱 用户与授权码 smtp-邮件发送对象的构造 新建并编辑邮件 发送邮件并 ...

  • 第16关精华笔记

    第15关精华笔记pdf版--同学记得打开电脑浏览器下载哦! 第16关精华笔记.pdf 0.4MB  什么是模块 最高级别程序组织单元,通常我们调用的模块都是写好的py文件,里面有各种变量,函数,类 ...

  • 第19关精华笔记

    第19关精华笔记pdf版--同学记得打开电脑浏览器下载哦!  第19关精华笔记.pdf 0.2MB  项目解示 代码一: import csv #调用csv模块 with open('assets ...

  • ​《了凡四训》15句精华

    ​<了凡四训>15句精华 作者袁黄,明朝思想家,教育家. 一.从前种种譬如昨日死:从后种种譬如今日生.此义理再生之身也. 二.一切福田,不离方寸,从心而觅,感无不通. 三.天难谌,命靡常. ...

  • 初中英语精华笔记

    A 1 (see .hear .notice .find .feel .listen to . look at (感官动词)+do  eg:I like watching monkeys jump.  ...

  • 伤寒论精华笔记

    <伤寒论> 1. 我国第一部辨证论治的专书是--东汉末年伟大的医学家张仲景(张机)所著的 <伤寒论>.奠定了辨证论治的基础,它的出现标志着辨证论治理论体系的确立. 2. 被后人 ...

  • 内科学精华笔记

    内科学精华笔记