一、字典
1.1字典的核心概念
字典是键值对映射结构,通过唯一的 "键(key)" 快速查找对应的 "值(value)"(类比学校学号对应学生),是编程中存储关联数据的常用容器。
1.2字典的基础操作
1.创建字典:
- 创建一个空的字典. 使用 { } 表示字典.

- 也可以在创建的同时指定初始值
- 键值对之间使用 , 分割 键和值之间使用 : 分割 (冒号后面推荐加一个空格).
- 使用 print 来打印字典内容


- 为了代码更规范美观, 在创建字典的时候往往会把多个键值对, 分成多行来书写.

2.查找键与值:
- 用
in判断键是否存在(返回布尔值);

- 用
字典[key]获取对应值,键不存在会报KeyError。

3.新增 / 修改元素:
使用 [ ] 可以根据 key 来新增/修改 value.
- 如果 key 不存在, 对取下标操作赋值, 即为新增键值对


- 如果 key 已经存在, 对取下标操作赋值, 即为修改键值对的值.


4.删除元素:
- 用
pop(key)根据键删除对应的键值对。


5.遍历与获取键值:
- 直接遍历字典 → 获取所有键;
- 用
keys()获取所有键(返回dict_keys类型); - 用
values()获取所有值(返回dict_values类型); - 用
items()获取所有键值对(返回dict_items类型,元素为元组)。
1.直接使用 for 循环能够获取到字典中的所有的 key, 进一步的就可以取出每个值了.


2.取出所有 key 和 value
- 使用 keys 方法可以获取到字典中的所有的 key


3.使用 items 方法可以获取到字典中所有的键值对.


1.3合法的 key 类型
不是所有的类型都可以作为字典的 key. 字典本质上是一个 哈希表, 哈希表的 key 要求是 "可哈希的", 也就是可以计算出一个哈希值.
- 可以使用 hash 函数计算某个对象的哈希值.
- 但凡能够计算出哈希值的类型, 都可以作为字典的 key.


列表无法计算哈希值.


字典也无法计算哈希值


二、文件
1.文件的基础概念
文件是持久化存储数据的载体(内存数据断电丢失,文件存储在磁盘),常见类型包括文本文件、可执行文件等。文件路径用于定位文件:
- 绝对路径 :从盘符开始(如
D:/program/qq/Bin/QQ.exe); - 相对路径:以基准目录为参照,适合项目内文件操作。
- 文本文件 (txt)
- 可执行文件 (exe, dll)
- 图片文件 (jpg, gif)
- 视频文件 (mp4, mov)
- office 文件 (.ppt, docx)
2.文件的核心操作
文件操作需遵循 "打开→读写→关闭" 流程,Python 通过open()函数实现:
| 操作 | 方法 / 方式 | 说明 |
|---|---|---|
| 打开文件 | f = open(路径, 模式) |
模式:r(读)、w(写,清空原内容)、a(追加写);打开失败抛FileNotFoundError |
| 关闭文件 | f.close() |
必须及时关闭,否则可能超出程序同时打开文件的上限(抛OSError) |
| 写文件 | f.write(内容) |
需以w/a模式打开;w模式会清空原内容,a模式追加到末尾 |
| 读文件 | f.read(字符数)/for line in f/f.readlines() |
以r模式打开;readlines()返回每行内容组成的列表(含换行符\n) |
如果文件是多行文本, 可以使用 for 循环一次读取一行.



由于文件里每一行末尾都自带换行符, print 打印一行的时候又会默认加上一个换行符, 因此打印结果看起来之间存在空行. 使用 print(f'line = {line}', end='') 手动把 print 自带的换行符去掉.
3.中文编码问题
文件与 Python 代码的编码方式需匹配(常用 GBK、UTF-8),否则会出现乱码或UnicodeDecodeError。
解决方法:打开文件时指定encoding参数(如open(..., encoding='utf8'))。

- 如果此处的编码为 ANSI , 则表示 GBK 编码.
- 如果此处为 UTF-8 , 则表示 UTF-8 编码.
此时修改打开文件的代码, 给 open 方法加上 encoding 参数, 显式的指定为和文本相同的字符集, 问题 即可解决.

彻底弄懂常见的7种中文字符编码
4.上下文管理器(with 语句)
用with open(...) as f:自动管理文件关闭,避免忘记关闭的问题,代码执行完后会自动调用close()。
