news 2026/9/9 22:09:49

Python入门第一天:从安装到跑通第一个程序,避开新手常见坑

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python入门第一天:从安装到跑通第一个程序,避开新手常见坑

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-30没有小数点的数字
float浮点数3.140.5有小数点的数字
str字符串"hello"'你好'文本内容,单双引号都行
bool布尔值TrueFalse表示真和假,注意大写

此外还有一个None,表示“什么都没有”,它自己也占一个类型NoneType。第一天只用看个眼熟,不需要死记,遇到不认识的类型可以用type(变量)来查看:

print(type(42)) # <class 'int'> print(type(3.14)) # <class 'float'> print(type("hello")) # <class 'str'>

4.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", encoding="utf-8") as f: for line in f: print(line.strip())

open打开文件,"r"表示读模式,encoding="utf-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 can't decode byte ...

这是因为 Windows 默认编码是 gbk,而文件是 utf-8 编码。解决办法只有一句话:在open时显式指定编码。

with open("test.txt", "r", encoding="utf-8") as f: ...

养成写完带中文的文件读取代码就加上encoding="utf-8"的习惯,不亏。

6. 第一天之后的路线:怎么走才能不迷茫

很多人第一天激情满满,装了环境、写了 hello world,第二天就不知道该干什么了。这个现象太常见了,原因只有一个:学习路径没有规划,学到哪算哪。

我给的建议分两个阶段。如果你只打算用 Python 写点小脚本、处理点文本和数据,那么接下来一周的目标可以是:每天写一个小的命令行工具。比如“批量重命名文件”“统计某个文件夹里各种扩展名的文件数量”“把 CSV 文件里某一列求和”。

写这些小工具的时候,你会自然接触到ossyspathlibcsv这些标准库模块。不要怕用现成的库,编程本来就不应该重复造轮子,学会查文档、用别人造好的轮子,才是真正的生产力。

如果你明确以后想干某个方向,比如数据分析、Web 开发、爬虫、自动化测试,那第一周可以选择方向相关的一个小项目来练手。拿数据分析举例,安装 pandas 和 matplotlib 后,找一份公开的 CSV 数据,试着画出柱状图。看到自己绘制的图表那一刻,你会切身感受到“这个工具能让我做成一件事”,这种正向反馈比刷一百集视频教程都有效。

注意:学 Python 最忌“课程囤积症”。收藏了无数教程、报了无数课程,却不动手画一行代码。一年后回头看,你仍然停留在第一天。我自己带新人的经验是:如果一天不写超过 20 行代码,那这一天基本等于白学了。不要求多,哪怕写 5 行,也要是运行通过、真实落地的代码。

遇到问题先自己读一遍报错信息,再去搜索引擎搜,这比直接问人更能锻炼能力。但也不要陷入死磕陷阱——卡了二十分钟没有进展,果断去搜、去问。编程学习里,卡壳二十分钟是上限。

最后分享一个第一天之前就应该知道的小技巧

在你正式开始第一天之前,先把“在终端切换目录、列出文件”这两个命令学会。Windows 上是cddir,macOS/Linux 上是cdls。因为后续所有 Python 学习都会涉及“我的文件在哪”“怎么在终端运行这个文件”这类问题。

很多人第一天被劝退,不是因为 Python 难,而是因为文件位置找不到、终端目录对不上这类“环境的坑”而心烦。这个小技巧看似不起眼,却能让你的第一天顺畅很多。就像我反复说的那句话:Python 的语法本身真的不复杂,拦住你的从来不是语言,而是环境配置时的耐心和遇到报错时的心态。第一天走通了这条路,后面整个世界就会慢慢打开。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/9 22:05:45

三菱PLC自动配料项目实战:物料特性与落差补偿控制

有一年我在现场蹲了三天&#xff0c;就为了搞定一个看起来再简单不过的问题&#xff1a;配料秤到了设定值为什么还会继续涨&#xff1f;车间老师傅说&#xff0c;这不就是我们当初担心的落差吗。可那个落差数据早上和下午完全不一样&#xff0c;上午物料干、流动性好&#xff0…

作者头像 李华
网站建设 2026/9/9 22:05:20

向量数据库实战:从语义搜索到RAG知识库的选型与避坑

做AI应用开发绕不开一个现实问题&#xff1a;模型再聪明&#xff0c;也记不住所有业务数据。企业知识库、AI智能体、RAG&#xff08;检索增强生成&#xff09;现在几乎成了应用开发的三件套&#xff0c;而其中真正决定上限的&#xff0c;往往不是模型本身&#xff0c;而是底下那…

作者头像 李华
网站建设 2026/9/9 22:03:06

SNMP测试工具全解析:从协议基础到排障实战

简介&#xff1a;面向网络管理员与运维人员的SNMP测试工具包&#xff0c;集成Paessler SNMP Tester核心程序及动态库&#xff0c;可对路由器、交换机、服务器等设备执行协议连通性检查、MIB对象读取/写入、Trap消息模拟与性能数据采集&#xff0c;适用于日常故障排查、配置验证…

作者头像 李华
网站建设 2026/9/9 22:02:53

LobeHub Vercel 部署怎么开启 Upstream Sync 自动更新?

LobeHub Vercel 部署怎么开启 Upstream Sync 自动更新&#xff1f; 【免费下载链接】lobehub &#x1f92f; LobeHub is your Chief Agent Operator, organizing your agents into 724 operations by hiring, scheduling, and reporting on your entire AI team. 项目地址: h…

作者头像 李华