看懂代码里的几种基本零件
代码只有八种零件。认得它们,AI 写的三十行你能读出个大概;认不得,三行也是天书。这一页每个零件只给一个例子,全部围绕同一件事:把「下载」里的发票按年份归类。例子用 Python,别的语言零件一样,只是写法不同。
Eight parts. Learn to recognise them, and thirty lines of code become a short set of instructions.Ocho piezas. Aprende a reconocerlas y treinta líneas de código se convierten en una lista corta de instrucciones.
必须掌握
一个具体的东西:一个数、一段文字、一个是或否。
7"2026-09-03_发票_001.pdf"True文字要加引号,数不加。"7" 是文字,7 是数,两个不能直接相加。这和 Excel 里文字和数字是两种东西是同一件事。
必须掌握
给一个值起名字,后面用名字指它。
folder = "下载"days_left = 5= 不是「等于」,是「把右边的东西存进左边的名字」。变量名是人起的,AI 写的代码里变量名就是它给你的提示:看到 target 你知道那是「目标」,看到 dry_run 你知道那是「只预览」。
必须掌握
一串值排成一队。
files = ["2026-03-15_发票_001.pdf", "2026-04-02_发票_002.pdf", "备忘.txt"]方括号,逗号隔开。文件夹里的文件、台账里的行、要处理的一批东西,在代码里都是列表。
必须掌握
如果……就……否则……。
if days_left < 7: print("紧急")else: print("正常")if 后面是判断,冒号,下面缩进的几行是「就」做的事。缩进不是排版,是意思:缩进的行属于上面那个 if。复制代码时把缩进弄乱,程序就变了。
必须掌握
对每一个……都……。
for f in files: print(f)for 后面起一个名字(这里叫 f),代表「当前这一个」,in 后面是那一队东西。缩进的行会对每一个做一遍。看到 for,先看它在对什么东西循环,再看它对每一个做了什么。
知道即可
给一段步骤起名字,以后用名字调用它,不用重写。
def year_of(name): return name[:4]
year_of("2026-03-15_发票_001.pdf") # 得到 "2026"def 定义,return 交出结果。print()、len()、sorted() 这些是别人写好的函数,拿来用就行。看到一个词后面跟着括号,那就是在调用函数,括号里是给它的材料。
必须掌握
程序停下来时说的话。看起来吓人,其实结构固定:
Traceback (most recent call last): File "整理发票.py", line 12, in <module> shutil.move(f, target)FileNotFoundError: [Errno 2] No such file or directory: '下载/发票'最后一行是原因。往上找带你脚本名的那行,File "整理发票.py", line 12 就是出事的位置和行号。中间可能夹着几行别人写的库,不用管。常见的几个:
| 它说 | 意思 |
|---|---|
FileNotFoundError |
找不到那个文件或文件夹,多半是路径写错或你不在对的文件夹里 |
PermissionError |
没权限碰那个文件 |
SyntaxError |
写法不对,常常是复制时少了一行,或者用了中文引号 |
IndentationError |
缩进乱了 |
NameError |
用了一个没定义过的名字,多半是拼错 |
整段复制给 AI,加一句「先解释这个错误是什么意思,不要猜」。
必须掌握
给人看的话,电脑跳过。
# 只看这个文件夹,别的地方不碰folder = "下载"# 后面的内容不运行。AI 写的代码让它每一段都加注释,你读注释就够了。没有注释的代码,让它先加了再给你。
必须掌握
八个零件拼成一个能用的东西,长这样。你现在应该能读出每一行在做什么:
# 把 files 里名字以年份开头的文件,按年份分组files = ["2026-03-15_发票_001.pdf", "2025-11-02_发票_002.pdf", "备忘.txt"]
def year_of(name): return name[:4]
for f in files: year = year_of(f) if year.isdigit(): print(f, "->", year) else: print("跳过:", f)读法:第一行注释说目的;一个列表是输入;一个函数取年份;循环对每一个文件,条件判断前四位是不是数字,是就打印去向,不是就打印跳过。没有任何一行会真的移动文件,所以它可以放心运行。真的移动文件的版本在下一页。
把上面那段代码里的每一行,用中文写在旁边:这行是哪个零件,在做什么。写完你会发现,三十行代码的读法和十行是一样的。