跳转到内容

看懂代码里的几种基本零件

代码只有八种零件。认得它们,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.

代码里的零件 整理发票.py # 按年份分组 files = ["2026-03-15_发票.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) 注释:给人看的 列表:一队值 函数:给步骤起名 循环:对每一个 变量:给值起名 条件:如果……就 缩进 = 属于上一行 读注释就够了
八种零件里的六种,都在这十二行里

必须掌握

一个具体的东西:一个数、一段文字、一个是或否。

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)

读法:第一行注释说目的;一个列表是输入;一个函数取年份;循环对每一个文件,条件判断前四位是不是数字,是就打印去向,不是就打印跳过。没有任何一行会真的移动文件,所以它可以放心运行。真的移动文件的版本在下一页。

把上面那段代码里的每一行,用中文写在旁边:这行是哪个零件,在做什么。写完你会发现,三十行代码的读法和十行是一样的。