最近被问得最多的一句话是想学Python但翻了几十个教程第一步到底干嘛有的是下载完软件不知道接下来做什么有的卡在环境变量上死活装不上还有的跟着敲了几行代码报错一堆直接放弃。我接触Python这么多年见过太多人不是被代码难倒的是被开局流程劝退的。这篇是系列的第一集目标非常明确带你从空白电脑开始把Python装好、把编辑器配好、把第一个程序跑起来顺便上手最基础的那几个语法点。这个地基打不牢后面什么爬虫、数据分析、自动化办公全是空中楼阁。所以这一集不贪多就解决从零到跑通这件事。你不需要任何编程基础甚至不用太理解那些术语跟着做就对了。我把每一步里容易翻车的细节都给你标出来这些坑当年让我折腾了整整一个晚上。1. 第一集的核心任务先搞清楚学Python到底在学什么很多人学编程学不下去不是因为脑子不行是因为不知道眼下学的每个东西将来用在哪。就好比学做饭你对着菜谱背切丝、焯水、爆香都背熟了但不知道为什么切丝、为什么要焯水做出来的菜还是不对味。学Python也一样得先有个地图。1.1 Python是一门好上手但很有深度的语言Python之所以常年霸榜编程语言热度原因其实很朴素它的语法接近自然语言写起来像在读一段话。同样是输出一句话别的语言可能要写一整套“仪式”Python里一个print()就完事。但这不意味着Python很浅。拿我自己的工作来说日常里有一大半重复劳动是靠Python脚本解决的——批量改文件名、自动拉取网页数据、定时汇总Excel表格。往深了走人工智能、量化分析这些方向底层也大量依赖Python的生态。这里要纠正一个误解总有人问Python是不是太慢学它是不是没前途。这话只说对了一半。Python执行速度确实比不上C这类编译型语言但它真正的优势是开发效率和生态。你要写一个爬虫脚本用别家语言可能要写几百行Python配合requests加BeautifulSoup几十行就搞定了。对于大部分应用场景那点性能差异根本感觉不出来节省的却是几倍、十几倍的开发时间。1.2 这一系列的路线图第一集不贪多作为系列的第一集我需要先跟你交个底接下来整个系列会按什么顺序走。我的规划是——第一课本集环境搭建 第一个程序 最基础的变量和类型第二至四课控制流程、数据结构、函数学完你就能独立写一些简单工具脚本后面才开始碰文件读写、常用第三方库比如numpy、pandas、matplotlib最后才是爬虫、自动化办公这些实战项目。这个顺序是我踩过不少坑之后总结出来的。市面上很多教程一上来就讲神级库、讲炫酷爬虫对零基础的人来说那不是捷径是悬崖。你连循环还不会就去读爬虫代码和正则表达式几乎一定会在某个报错上卡住然后弃坑。第一集的知识密度经过刻意控制只讲装环境、跑通代码、认识变量和类型这三件事。这三件事熟练了后面的学习会越来越顺。咱们不急着跑先把鞋穿好。2. 环境准备装Python时最容易被劝退的三个坑正式开始动手前先解决一个最基础的问题怎么把Python装到你的电脑上。python安装教程为什么能常年挂在热搜上因为这一步看着简单实际上暗坑不少很多人的Python之旅就断送在这了。2.1 版本选择与官网下载别用什么3.8直接上3.10现在网上能搜到大量Python教程但年份跨度很大。有人还在让你下载Python 3.6、3.8那不是因为它好用而是因为作者教程写得太早没更新。我的建议很简单去官网python.org点击首页的Downloads装最新的稳定版目前主流的3.10以上3.12/3.13也都非常稳。选新版不是追新三个很现实的理由新版本语法更现代社区教程大多按新语法写你遇到问题搜到的答案基本都能对上新版本在性能和内存占用上有实打实的优化同样的代码跑起来更快老版本慢慢停止安全维护用老版本等于把电脑暴露在已知漏洞面前。国内网络访问官网有时会慢这是正常现象耐心等一下或者用镜像站下载都行。另外注意区分系统和架构Windows用户选64位的安装包几乎所有新电脑都是64位macOS用户选macOS 64-bit installerLinux用户一般不直接下载安装包而是用系统自带工具安装Ubuntu/Debian用sudo apt install python3CentOS系用yum install python3。Linux下装Python的门道比Windows稍微绕一点新手如果先用Windows或macOS会顺畅得多。2.2 安装时最关键的一步勾选Add Python to PATH这是刚入门时踩坑率最高的一件事我当年也栽在这。Windows安装包打开后第一屏就有一个朴素的空白复选框旁边写着Add Python to PATH不仔细看很容易忽略。新手通常直接就点Install Now跳过这个勾然后后面就出事了。这个PATH到底是什么我打个比方你把系统想象成一个大型办公楼管理员命令行要找某个员工python程序必须知道他在哪个房间。PATH就是大楼的员工花名册告诉管理员python在哪屋。你不勾选系统就不知道上哪儿找python你在命令行里敲python它只会冷冷地回你一句不是内部或外部命令。所以一定要勾上Add Python to PATH。如果不小心忘了勾不用慌两个补救办法重新运行安装程序选择Modify把对应选项勾上再走一遍或者手动把Python的安装目录比如C:\Users\你的用户名\AppData\Local\Programs\Python\Python310和它的Scripts子目录添加进系统环境变量。装完之后怎么确认成功了按Win R输入cmd打开命令行敲python --version如果能看到Python 3.x.x那就说明环境OK了。这一步验证非常重要别装完就开开心心写代码去了。2.3 编辑器选型与VSCode环境配置到底该用哪个写代码Python装好之后还需要一个写代码的地方。新手最常见的困惑有三种选择IDLE装Python自带、VSCode、PyCharm。我直接给个结论第一集先用IDLE也行但我更推荐你从现在开始就花半小时把VSCode配好。原因很简单VSCode免费、轻量、跨平台而且后面写爬虫、调试代码都用得上没必要先学一个IDLE再换工具。三者的区别我整理了一个表工具适合人群优点缺点IDLE一分钟都不愿折腾的人自带零配置代码提示弱调试体验一般VSCode绝大多数新手免费、轻量、生态强、插件丰富初始需要配置一次扩展PyCharm想专心写大项目的人集成度高、开箱即用专业版收费社区版缺功能启动较慢VSCode配置Python环境其实不复杂网上搜vscode python环境配置能找到一堆教程但经常有人配完还是报错多半是以下两个原因第一没装官方Python扩展。到VSCode的扩展商店里搜索Python认准微软出品的那个作者显示是Microsoft安装它。装完之后VSCode才会给你代码高亮、智能提示、一键运行这些能力。第二解释器选错了。VSCode右下角通常会显示当前使用的Python解释器如果它选的是某个虚拟环境或者其他版本而你往系统Python里pip install装了个库代码里import就会失败报ModuleNotFoundError。解决办法是CtrlShiftP输入Python: Select Interpreter手动指定你刚安装的那个Python。编辑器配好之后可以建一个文件夹专门放练习代码比如D:\PythonCode以后所有.py文件都放这里好管理。3. 第一个程序完整跑通Hello World背后的三个环节环境装好、编辑器配好了现在开始写代码。别小看这个部分python画图横坐标太密集这类问题为什么那么多人搜因为大家总想一步到位跳过基本功直接画图结果连数据都喂不进去。代码这条路真的一步都跳不得。3.1 两种运行方式一行一行敲 vs 整体跑一个文件Python代码有两种运行方式新手往往在这两种方式之间混乱我一次说清楚。第一种叫交互模式。打开命令行Windows的cmd或macOS的终端敲python回车你会看到提示符此时你可以一句一句地输入Python代码回车立刻出结果。这种模式适合验证小程序片段比如你突然想算一下2的10次方敲2 ** 10回车立刻得到1024。日常调试偶尔会用到。第二种叫脚本文件模式。把代码写进一个.py文件里然后用python 文件名.py整个跑一遍。这是我们真正写程序的主要方式。这里有个很多新手不知道的小细节交互模式下你定义一个变量、跑完一个测试关掉窗口就没了而脚本文件里的代码可以反复运行改一行重跑一行。所有正式的练习都应该写成.py文件不要一直用交互模式不然你永远学不会组织代码。现在正式写第一个程序。在D:\PythonCode下新建一个文件命名为hello.py用VSCode打开输入print(Hello, Python!)然后打开终端VSCode里按Ctrl确保路径在D:\PythonCode执行python hello.py屏幕上出现Hello, Python!恭喜你的第一个Python程序跑通了。3.2 编码问题为什么别人的中文到你这儿变成了乱码如果你在程序里写了中文注释或者中文的print比如print(你好世界)在Windows的cmd里运行有时候会看到令人抓狂的乱码比如浣犲ソ。这不是你的代码写错了是环境的编码不一致导致的。Python 3的源码默认是按UTF-8编码的但Windows命令行终端尤其是老版本的cmd默认的编码是GBK中文系统下。两边各说各的语言结果就是乱码。这个问题怎么解两个思路。第一如果只是在VSCode里运行那一般没事因为VSCode默认使用UTF-8。真正出乱码的是在cmd窗口里直接跑的时候。解决方式是运行前先执行一句chcp 65001这是把cmd的编码切到UTF-8。更稳妥的办法是写代码的时候顺手在文件第一行加个编码声明# -*- coding: utf-8 -*-虽然在Python 3里这个声明已经不再是强制要求但保留它是一个好习惯——遇到诡异的编码问题它能帮你排除一个可能性。3.3 print的完整用法别小看这个函数print()是你在Python里打的第一个照面也是之后编程路上最忠实的伙伴。它远比看上去复杂这里先把最常用的几种玩法摆出来print(Hello) print(Python, 你好, 世界) # 逗号隔开默认用空格连接 print(Hello, end) # 不换行打印 print(\n这是一个换行符) # \n表示换行 print(1 1) # 可以直接打印表达式结果sep参数可以指定多个值之间的连接符比如print(2025, 08, 20, sep-) # 输出2025-08-20我见过不少新手在调试时只会用最简单的print(变量)结果输出一大片分不清谁是谁。更好的做法是加上描述比如age 18 print(年龄是, age)这样调试信息一目了然哪条是哪个变量的值清清楚楚。这个习惯越早养成越好。4. 基础语法速通变量、类型和输入输出构成的第一道坎跑通Hello World只是热了个身。真正进入Python语法世界第一道坎就是变量、数据类型和输入输出。别小看这部分你后面遇到的所有报错一大半都和类型搞混输入没转成数字有关。4.1 变量与动态类型Python不用声明背后的逻辑在Python里定义一个变量非常简单name 小明 age 18 height 1.75不需要像C或Java那样写String name、int age。Python是动态类型语言解释器会根据你赋值的内容自动判断类型。这种设计让新手写起来非常爽但也会带来一个副作用新手容易搞不清现在name到底是什么类型。要搞清楚当前变量的类型用type()函数print(type(name)) # class str print(type(age)) # class int print(type(height)) # class float我强烈建议你写代码时多打印几次type()尤其是当代码报错、你心里犯嘀咕这个变量现在到底是个啥的时候。这个动作能帮你快速定位一大批问题。变量的命名也有一些规矩只能用字母、数字和下划线不能以数字开头不能是Python的关键字比如if、for、while这些。一个实用的小技巧是变量名要起得有意义age就比a好一万倍。这不是矫情而是为了你一个星期后回头看代码时不用像侦探一样猜自己当时在想什么。4.2 基础类型与类型转换一个最常见的报错现场Python中最常见的四种基础类型金融一下int整数比如18、-3float浮点数有小数的数比如1.75str字符串用单引号或双引号包起来的文本比如你好bool布尔值只有True和False两种。它们之间可以互相转换int(123)把字符串转成整数str(123)把整数转成字符串。看起来很简单但新手最喜欢的翻车现场就此诞生。你写了age input(请输入你的年龄) print(age 1)然后就报错了TypeError: can only concatenate str (not int) to str。原因很简单input()返回的一定是字符串哪怕是用户输了个18它也只是文本形式的18不是数字18。你用age 1就是想把一个文本和一个数字相加程序完全不知道该怎么办。解决办法是先转成整数age int(input(请输入你的年龄)) print(age 1)这个错误太典型了几乎每个Python初学者都会遇到。我的建议是每次用input()拿到的值先想清楚自己要的是字符串还是数字是数字就立刻int()或float()转一下不要等到后面报错了再回头找。4.3 输入与输出做一个会打招呼的小程序把前面学的串起来写一个非常小但完整的程序。新建greet.py# 用变量存姓名和年龄 name input(你叫什么名字) age int(input(你今年多大)) print(你好 name) print(明年你, age 1, 岁了)运行一下程序跟你对话你输入名字和年龄它回你一句你好”再说一句明年你XX岁了。就这么点功能里面包含了变量赋值、输入、类型转换、输出四件事。能把这个程序独立写出来说明你已经对编程有了最初步的体感程序就是按你写的顺序一条条执行命令。这种小对话程序看似幼稚却是后面所有交互程序的原型。很多系统里的用户注册、调查问卷底层就是干这个事。5. 控制流程让代码学会做决定和循环代码不只能按顺序执行它能判断情况、重复工作这才是它节省人力的开始。这一节要解决的是Python基础语法里最核心的一个部分——if判断和循环。你后面写的代码里这两样东西几乎是无处不在的。5.1 缩进是Python的花括号也是报错重灾区其他语言的代码块用花括号{}圈起来而Python用缩进表示代码的层级关系。这意味着同样一段逻辑别人用{}你用一个缩进通常是一个Tab或四个空格Python就认定这些行是一伙的。缩进看起来简单但因为你可以在一个代码块里嵌套另一个代码块缩进层级就变得关键了。缩进错了或者混用了Tab和空格Python会直接报错IndentationError: unexpected indent。这种错误烦人到什么程度我见过很多新手写的代码逻辑没问题就卡在缩进上怎么改都报错。我的经验是在VSCode里把显示空白字符打开并且让Tab等于四个空格这样缩进层级清清楚楚混用Tab和空格的情况也一眼就能看出来。VSCode的设置里搜renderWhitespace选all就不怕缩进问题了。5.2 if判断让代码会做决定if语句的格式很简单score 85 if score 60: print(及格) elif score 90: print(优秀) else: print(不及格)注意几个要点条件后面必须有冒号这是新手最容易忘的满足条件的代码要缩进elif是else if的缩写可以多个else是兜底所有条件都不满足时执行。条件判断里常用的比较符有相等、!不相等、、、、。这里有个经典陷阱新手经常用来判断相等但在Python里是赋值才是判断相等。写成if score 85程序直接报语法错误这一步写错的话后面的全白搭。如果多个条件要同时满足用and满足任意一个用or。比如age 20 has_ticket True if age 18 and has_ticket: print(可以进场)逻辑清晰跑起来也省心。条件判断是程序思考的基础这部分练熟后续的数据库查询、爬虫过滤、数据处理本质都是这些逻辑的排列组合。5.3 for循环与while循环重复这件事交给电脑重复劳动正是计算机的本行。Python里的循环有两种使用场景不太一样。for循环适合处理确定要循环多少次的情况。最常用的写法是配合range()for i in range(5): print(这是第, i, 次循环)它会打印从0到4共5次。注意是从0开始不是从1开始这是编程里约定俗成的习惯初学容易困惑记住就行。for循环也经常用来遍历列表names [小明, 小红, 小刚] for name in names: print(你好, name)while循环适合不知道具体多少次但知道什么时候停的情况。比如count 0 while count 3: print(计数, count) count count 1这里必须小心一件事如果忘记写count count 1count永远等于0循环永远不停程序就成了死循环CPU狂转终端疯狂刷刷刷。遇到这种情况按Ctrl C可以强制停止程序。我的建议是能用for循环解决的问题优先用for因为不容易写出死循环while适合卡在一个条件上等它变化的场景。5.4 动手小练习猜数字游戏学了input、if、while之后做一个经典小游戏程序心里想一个1到10的数字你猜它猜不中就一直猜猜中了提示成功。可以把这段代码敲下来运行感受一下import random secret random.randint(1, 10) guess 0 while guess ! secret: guess int(input(猜一个1到10的数字)) if guess secret: print(猜大了) elif guess secret: print(猜小了) else: print(恭喜你猜对了)这个程序用到了random库这也是第一次接触第三方库的感觉——import一下别人的代码就能变成自己的工具。代码里while guess ! secret会一直循环直到你猜中为止。这是一个特别好的练习因为它逼着你同时使用输入、判断、循环和逻辑判断把这些基础语法真正串起来。如果你能独立完成这个游戏并且理解了每一行的作用恭喜你第一阶段的语法护照已经到手了。6. 函数与模块从写代码到组织代码的第一步到这一步你已经能写一些小逻辑了。但随着代码量上去你会发现全堆在if和while里会变成一团乱麻。这时候就该轮到函数和模块登场了。这一节同时会聊到python定义函数和python安装第三方库这两个高频搜索点。6.1 def定义函数把代码装进容器随时调用函数的本质是把一段有特定功能的代码封到一个盒子里给它起个名字以后随时调用。定义函数用defdef add(a, b): return a b result add(3, 5) print(result) # 8语法要点def后面跟函数名和括号括号里写参数结尾要有冒号函数体要缩进return把结果返回出去。没有return的函数会返回None这是一个很常见的新手困惑点——函数里面打印了东西但是调用之后拿不到返回值就是因为忘了return。函数还有一个非常实用的特性默认参数。比如def say_hello(name陌生人): print(你好, name) say_hello() # 你好 陌生人 say_hello(小明) # 你好 小明默认参数让函数更灵活调用时不传参也能工作。后面写脚本的时候这种小设计能省不少事。至于什么时候该拆函数我的标准很简单一段逻辑你复制粘贴了两次以上就该把它装进函数了。复制粘贴一时爽后面需求一改想着找到所有粘贴过的地方挨个改那个酸爽经历一次就能记住。6.2 import与pip用别人的代码省自己的时间Python生态强大很大程度上是因为有海量的第三方库。装库要用pip这也是虽然基础但极为常用的操作。装库的命令很简单pip install requests一次装多个库pip install numpy pandas matplotlib国内装库经常因为网络问题慢得令人抓狂解决方案是换镜像源。用清华源举例pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple把-i后面的源替换成国内镜像下载速度会快非常多。这里要说一个很多新手都会踩的坑明明pip install装好了库但VSCode里一运行还是提示ModuleNotFoundError。99%的原因是VSCode选了解释器A而pip install装到了解释器B。我见过一个学员装了三遍库都不行最后一查原来电脑里有Python 3.9和3.11两个版本pip装到了3.9编辑器却用的3.11。解决办法在2.3小节说过CtrlShiftP选择正确的解释器确保装库的环境和运行代码的环境是同一个。导入库有两种常见方式import math print(math.sqrt(16)) # 4.0 from random import randint print(randint(1, 100)) # 随机一个1到100的整数import math是整体引入用的时候要写math.xxfrom random import randint是把某个功能单独拿出来直接写名字就能用。新手先用import这种不容易搞混命名。6.3 这一集学完你应该能自己定位报错代码写多了报错是必然的但报错不是坏事——它是最精确的调试指引。很多新手一看到红色报错就慌其实只要掌握一套方法报错完全可以应付。看报错信息就看三层错误类型比如SyntaxError、TypeError、NameError。这是问题的大方向相当于医生先判断你挂内科还是外科错误具体位置Python会告诉你哪个文件哪一行出错后面还贴心地用^箭头指出来错误描述最后那句英文翻译一下往往能直接定位。我把初学者最常遇到的几类报错整理一下报错类型出现的原因常见场景SyntaxError语法错误代码不符合Python规则少了冒号、括号不配对NameError变量或函数未定义写错名字、忘定义直接用TypeError类型不匹配操作不支持字符串和数字相加IndentationError缩进有误Tab和空格混用、缩进层级混乱ModuleNotFoundError模块不存在或没安装忘了pip install或装错环境遇到看不懂的报错最笨但最有效的方法把错误提示原文复制扔到搜索引擎里搜。绝大多数你踩过的坑前人都踩过并且留下了解决方案。千万不要凭感觉乱改代码报错信息是程序给你的最明确的提示方向都在里面。学到这里第一集的内容已经全部过完了。最后再分享一个我个人习惯的小技巧每次学完一个新知识点别急着往下一篇翻花20分钟把今天学的东西写成一个玩具程序——哪怕是猜数字换一个花样或者把打招呼程序扩展成英文版。写代码这件事看十遍都不如亲手敲一遍记得牢。第一集的地基打好了第二集我会带你把列表、字典这些数据结构吃透那才是真正开始玩转数据的起点。
阅读完成 · 觉得有帮助?