
1. 第一天别急着“学语法”先搞清楚这三件事很多人决定学 Python 的时候第一反应是“找套教程从变量、循环、函数开始背”。我见过太多人卡在这个环节学了两周连一个能跑起来的程序都没写过然后就开始怀疑自己是不是不适合编程。“Python 第一天”这个标题我太熟悉了。每年都会带不少零基础的朋友走上这条路而我最常跟他们说的一句话是第一天真正的目标不是你“学会了多少语法”而是你“亲手跑通了一个哪怕极小的程序”并且知道后面遇到问题该去哪里查、怎么问、怎么搜。说得再直白一点第一天的目标不是学完而是“别被吓退”。这篇内容就是按这个思路来的。我会带你从安装、写第一行代码到理解变量、列表、循环、函数再到解决新手最常见的报错用一篇文章的时间把第一天的路完整走一遍。你不需要有编程基础不需要提前看任何前置课程甚至不需要知道“编译器”和“解释器”的区别跟着操作就能跑通。先给一个心态上的定调Python 的入门难度在主流编程语言里算最低的一档。它的语法接近自然语言不强制分号也不需要声明类型这让很多新手在第一天就能写出“看起来像那么回事”的程序。但这不代表你可以跳过实践只看视频。编程是一项手艺活和做饭、开车一样光看永远学不会。第一天你只需要完成三件事把环境装好、把第一个程序跑起来、把核心的基本概念“看熟”。看熟的意思是不要求你背住而是你见到这些代码能大致猜到它在干什么。剩下的全都在后续的反复实践中自然内化。2. 装对 Python 环境比“学会” Python 更重要2.1 版本和安装包怎么选打开 Python 官网你会看到两个大版本Python 2.x 和 Python 3.x。不要犹豫直接选 3.x 的最新稳定版。Python 2 已经停止维护好几年了你看到的绝大多数教程、开源项目、第三方库也都是基于 Python 3 的。具体选哪个小版本比如 3.12.x、3.13.x我个人的建议是选择最新的稳定版本但不要刻意追求刚发布 RC 或者 alpha 的测试版。以 2025 年来看装 3.12 或 3.13 都没有问题。选择的原则很简单稳定、教程多、第三方库兼容性好。下载的时候注意选对系统。Windows 用户要选“Windows installer (64-bit)”macOS 用户选“macOS 64-bit universal2 installer”Linux 用户一般通过系统自带的包管理器安装比如sudo apt install python3。关于 Linux 我多说一句Ubuntu、Debian 这类系统自带 Python 3版本可能不是最新但日常学习完全够用没必要自己折腾源码编译。2.2 PATH 到底是什么为什么那么多人卡在这Windows 安装 Python 时最关键的步骤就是勾选“Add Python to PATH”。很多人对 PATH 没有概念我打个比方PATH 就像是系统的一份“找人名单”。当你在命令行输入python时系统会按这份名单挨个去文件夹里找看哪个文件夹里有名为python的程序找到就执行找不到就报“python 不是内部或外部命令”。勾选之后系统就知道该去哪里找 Python。如果没勾选你仍然可以通过开始菜单里的“IDLE”写代码但后续用终端执行脚本、用 pip 安装第三方库的时候就会被折腾得怀疑人生。所以安装那一步一定要勾上。如果你已经装完了并且没勾最简单的解决办法是卸载重装一次比手动配置 PATH 快得多。macOS 和 Linux 用户一般不用操心 PATH 的问题系统已经帮忙处理好了。2.3 先装环境还是先写代码——选择困难症必看我见过不少新手在“编辑器”上耗掉大量时间。一开始就纠结 VS Code、PyCharm、Sublime 到底哪个好其实完全没必要。第一天的核心目标就是“跑通一个程序”你只需要一个能写代码、能执行代码的地方。Windows 上安装完 Python 后自带的 IDLE就是一个最简单的开发环境。它打开就是交互窗口直接输入print(hello)回车就能看到输出零成本上手。我建议第一天就用它。等到后续写的东西多了需要项目管理、调试、Git 集成的时候再切换到 VS Code 或者 PyCharm 也不迟。如果你已经装了 VS Code也可以直接用。装好 Python 插件后新建一个.py文件点右上角的三角形运行按钮就能执行。VS Code 的优势是轻量、启动快、插件生态好但你不需要在第一天就去研究它的所有配置。3. 第一个程序让电脑听懂你说的话3.1 从 print 开始第一行代码先跑通打开 IDLE你会看到一个带有提示符的窗口。这个窗口叫“交互模式”你输入一行代码它立刻执行并给出结果。试着输入print(Hello, Python!)按回车屏幕上会出现Hello, Python!。就这么简单你已经写出了人生中第一行 Python 代码。print的作用是“输出”也就是把括号里的内容显示到屏幕上。括号里的双引号表示这是一个字符串也就是一段文本。如果你去掉引号再试一次print(Hello, Python!)会得到一个SyntaxError因为 Python 看不懂裸的Hello是什么。这个报错是好事不要怕报错它会告诉你哪里出了问题。我建议第一天把所有代码都在 IDLE 的交互窗口里敲一遍体验“输入一行得到一行反馈”的感觉。这比新建文件跑整个脚本更有掌控感。等到你熟悉了基本语法再把代码写进.py文件用python 文件名.py的方式运行整个文件。3.2 变量是“贴标签”不是“存箱子”新手最容易对“变量”产生误解觉得它是个盒子你把值放进去。这个类比在 Python 里其实不太准确。更准确的理解是变量是一个名字你把它贴在某个对象上。name 小明 age 18这里发生了两件事先创建了字符串对象小明然后给它贴上了name这个标签。当你想用到这个字符串时就喊它的名字name。如果你执行name 小红并不是原来的字符串变了而是name这个标签被撕下来贴到了新的字符串对象上。原来的小明如果没人引用会被垃圾回收机制收掉。这个区别平时感受不到但在学习函数参数、列表修改的时候会变得很重要。第一天不需要深入理解但建议你记住这个说法后续遇到“为什么我改了列表原来的变量也变了”这类问题时能少绕很多弯。3.3 用 f-string 让输出变得像人话假设你有一个变量name 小明想输出“你好小明”。新手最容易想到的是print(你好 name)用加号拼接字符串不是不行但一旦变量多了就很痛苦。Python 3.6 之后引入了 f-string写法更优雅print(f你好{name})f-string 就是在字符串前加一个f然后用花括号把变量名包起来。Python 会自动把变量的值填进去。这个特性几乎每天都在用第一天就记住它后面会很舒服。再举一个更复杂的例子name 小明 age 18 print(f我叫{name}今年{age}岁。)输出结果是我叫小明今年18岁。。注意age是整数不需要手动转成字符串f-string 会自己处理。3.4 第一次“调试”程序不按你想的走把下面这段代码敲进 IDLE看看会发生什么print(开始) print(1 / 0) print(结束)你会看到ZeroDivisionError而且“结束”那一行没有输出。这是 Python 的执行顺序逐行执行遇到错误就立刻停止后面的代码不会运行。看着好像很蠢但这是好事因为程序会明确告诉你错误发生的行和原因你只要根据提示去修改就行。第一天遇到报错不要慌也不要去死背错误信息。只需要学会一件事把错误信息完整地复制到搜索引擎里一般都能找到答案。记住这个动作你会感谢我。4. 第一天的核心语法只学能撑起一个小脚本的六件事很多教程第一天的内容会铺得很开从所有数据类型讲到所有语句最后还带一嘴面向对象。作为过来人我的建议是“第一天少而精”。以下六件事足以支撑你写出第一个能实际运行的小工具。4.1 类型记住这四个就够了其余用到再查Python 是动态类型语言也就是说你不需要在定义变量时告诉它“这是一个整数”。但你自己得知道哪些是整数、哪些是文本。第一天只需要认识四类类型名称例子说明int整数42、-3、0没有小数点的数字float浮点数3.14、0.5有小数点的数字str字符串hello、你好文本内容单双引号都行bool布尔值True、False表示真和假注意大写此外还有一个None表示“什么都没有”它自己也占一个类型NoneType。第一天只用看个眼熟不需要死记遇到不认识的类型可以用type(变量)来查看print(type(42)) # class int print(type(3.14)) # class float print(type(hello)) # class str4.2 列表和字典以后百分之九十的数据都装在这两个容器里列表用方括号表示就像一条队伍每个人有位置编号编号从 0 开始fruits [苹果, 香蕉, 橙子] print(fruits[0]) # 苹果 print(fruits[1]) # 香蕉能不能不 0 开始现实是几乎所有主流编程语言都从 0 开始这是为了对应内存偏移量的计算方式。你只需要记住“从 0 数起”后面就不会因为差一个而报错。字典用花括号表示存的是“键-值对”就像一本电话簿通过名字找到电话person {name: 小明, age: 18} print(person[name]) # 小明 print(person[age]) # 18第一天先别管“为什么要用字典”只要知道“有这个工具它能存有对应关系的数据”就够了。后续处理配置文件、爬虫返回的 JSON、表格数据时它的作用会自然显现。4.3 if 和 for让程序替你做事程序的核心不是“执行指令”而是“根据条件做出选择”和“重复执行”。if就是做选择的age 18 if age 18: print(你已经成年了) else: print(你还未成年)注意三点条件后面要加冒号冒号后的代码要缩进缩进的代码块以缩进多少为准通常用四个空格。Python 用缩进来表示代码块的归属这是它和其他语言最大的区别——别人用花括号Python 用排版。for就是做循环的通俗讲叫“遍历”fruits [苹果, 香蕉, 橙子] for f in fruits: print(f)这段代码从列表里一个个取出元素每次取一个赋给变量f然后执行缩进里的代码。f叫什么无所谓它只是临时的名字。还有一种循环是while第一天的量级用不到太复杂知道有这个东西就行。核心学会for尤其是for ... in range(...)for i in range(5): print(i)range(5)生成从 0 到 4 的五个数字所以输出的是 0、1、2、3、4。4.4 函数把重复的动作打包写了几行代码之后你会发现自己经常重复做同一件事。这时候就该用def定义函数把动作打包成“一个可以反复调用的小工具”。比如写一个打招呼的函数def greet(name): print(f你好{name}) greet(小明) # 你好小明 greet(小红) # 你好小红函数的完整概念包含参数、返回值、作用域、默认值等第一天不需要全部掌握。你需要理解的是“函数把一段代码封装起来每次调用就不用重复写了”这个思想后面写任何程序都会用到。再说一下函数和缩进的关系def greet(name):下面的缩进块就是函数体。你新建一个.py文件把上面的代码写进去运行后控制台会输出两行问候语。4.5 读取文件第一个“实用”环节很多人在第一天只接触print和变量觉得“太小儿科”。但当你学会了读文件你写的程序就开始有实际意义了——你可以用 Python 处理自己电脑上的文本了。假设当前目录下有一个test.txt文件内容是几行文字with open(test.txt, r, encodingutf-8) as f: for line in f: print(line.strip())open打开文件r表示读模式encodingutf-8指定编码with ... as保证文件用完自动关闭。line.strip()是去掉每一行首尾的换行符和空格。这是新手学 Python 的里程碑时刻你不再只是“运行别人写好的代码”而是开始“让电脑处理你电脑里的数据”。哪怕只是读取文本、过滤特定行、统计行数都意味着你已经从“学概念”跨入了“做工具”的阶段。5. 新手第一天最容易踩的五个坑提前帮你排掉这个部分建议收藏。下面这些报错和问题几乎每一个学 Python 的人都在某一个时刻遇到过。提前看过一遍真正遇到的时候就不会慌。5.1 IndentationError缩进错误if True: print(hello)运行会报IndentationError: expected an indented block。原因很简单if下面的代码必须缩进。Python 用缩进表示代码块的层级所以缩进不是“可选的风格”而是“强制语法”。解决方式使用四个空格作为缩进保持整个文件一致。不要混用 Tab 和空格那会让你排查半天还找不到原因。大部分编辑器都可以配置“把 Tab 转换为空格”VS Code 右下角就能看见。5.2 SyntaxError语法错误print(hello缺少右括号会报SyntaxError。这个错误的意思是“Python 没看懂你的代码因为它不符合语法规则”。遇到SyntaxError的时候先看你报错提示的那一行检查括号、引号、冒号、逗号是否成对。有一个技巧在 IDE 里写代码时如果某一行的语法有问题编辑器通常会提前用红色波浪线标出来。看到红色就停一下别硬着头皮运行。5.3 NameError名字未定义print(name)如果你之前没有定义过name这个变量会报NameError: name name is not defined。字面意思就是 Python 找不到这个名字。检查两个地方一是你是不是拼错了变量名比如定义的是my_name但写的是myname二是这个变量是不是在别的函数里定义的作用域不对。新手常见场景是在函数里定义了变量函数外面却想访问它。第一天先不用深入理解作用域但遇到NameError时要知道“名字没定义过或不在当前作用域”。5.4 ModuleNotFoundError模块没找到import pandas如果提示ModuleNotFoundError: No module named pandas说明你还没安装 pandas 这个第三方库。安装方式是在终端里执行pip install pandas注意是在终端而不是在 Python 交互窗口里运行。装完之后再运行 import 就不会报错了。关于 pip 多说一句这是 Python 自带的包管理工具用来安装第三方库。学习 Python 数据分析、爬虫、Web 开发都离不开它。遇到“ModuleNotFoundError”时第一反应应该是“这个库装了吗”。5.5 Windows 下的文件编码问题在用open读取中文文本文件时经常会碰到UnicodeDecodeError: gbk codec cant decode byte ...这是因为 Windows 默认编码是 gbk而文件是 utf-8 编码。解决办法只有一句话在open时显式指定编码。with open(test.txt, r, encodingutf-8) as f: ...养成写完带中文的文件读取代码就加上encodingutf-8的习惯不亏。6. 第一天之后的路线怎么走才能不迷茫很多人第一天激情满满装了环境、写了 hello world第二天就不知道该干什么了。这个现象太常见了原因只有一个学习路径没有规划学到哪算哪。我给的建议分两个阶段。如果你只打算用 Python 写点小脚本、处理点文本和数据那么接下来一周的目标可以是每天写一个小的命令行工具。比如“批量重命名文件”“统计某个文件夹里各种扩展名的文件数量”“把 CSV 文件里某一列求和”。写这些小工具的时候你会自然接触到os、sys、pathlib、csv这些标准库模块。不要怕用现成的库编程本来就不应该重复造轮子学会查文档、用别人造好的轮子才是真正的生产力。如果你明确以后想干某个方向比如数据分析、Web 开发、爬虫、自动化测试那第一周可以选择方向相关的一个小项目来练手。拿数据分析举例安装 pandas 和 matplotlib 后找一份公开的 CSV 数据试着画出柱状图。看到自己绘制的图表那一刻你会切身感受到“这个工具能让我做成一件事”这种正向反馈比刷一百集视频教程都有效。注意学 Python 最忌“课程囤积症”。收藏了无数教程、报了无数课程却不动手画一行代码。一年后回头看你仍然停留在第一天。我自己带新人的经验是如果一天不写超过 20 行代码那这一天基本等于白学了。不要求多哪怕写 5 行也要是运行通过、真实落地的代码。遇到问题先自己读一遍报错信息再去搜索引擎搜这比直接问人更能锻炼能力。但也不要陷入死磕陷阱——卡了二十分钟没有进展果断去搜、去问。编程学习里卡壳二十分钟是上限。最后分享一个第一天之前就应该知道的小技巧在你正式开始第一天之前先把“在终端切换目录、列出文件”这两个命令学会。Windows 上是cd和dirmacOS/Linux 上是cd和ls。因为后续所有 Python 学习都会涉及“我的文件在哪”“怎么在终端运行这个文件”这类问题。很多人第一天被劝退不是因为 Python 难而是因为文件位置找不到、终端目录对不上这类“环境的坑”而心烦。这个小技巧看似不起眼却能让你的第一天顺畅很多。就像我反复说的那句话Python 的语法本身真的不复杂拦住你的从来不是语言而是环境配置时的耐心和遇到报错时的心态。第一天走通了这条路后面整个世界就会慢慢打开。