news 2026/9/8 6:13:15

Python零基础入门:环境搭建与核心语法实战笔记

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python零基础入门:环境搭建与核心语法实战笔记

搞Python的第一篇笔记,我打算从最底层的环境搭建开始写起。标题就叫“【python】学习笔记(1)”,内容锁定在“python安装”和第一批核心语法。这篇笔记适合零基础准备入门的自学党、想转行做数据分析或自动化脚本的办公族,以及被各种教程绕晕、想找一条清晰路线的人。我会按照自己实际踩坑的顺序来整理:装好Python解释器、选对开发工具、跑通第一个程序、理解变量和数据类型、掌握条件判断和循环,最后把初学者最容易碰到的报错集中盘一遍。这些内容都是我自己验证过的,直接照着操作,基本能顺滑跑通。

1. 环境搭建:把Python解释器装进电脑

1.1 下载安装包与版本选择

Python的官网是python.org,下载页面里会有很多版本,新手容易看花眼。我的建议是挑当前最新的稳定版,比如3.10、3.11、3.12这一类3.x系列,直接认准带有“Stable”标记的就行。别碰2.x的旧版本,那已经是历史包袱,现在的新库和新语法都不再支持,学它纯属浪费精力。

下载的时候要看清楚自己的系统位数。Windows用户右键“此电脑”选“属性”,能看到“系统类型”里写的是64位还是32位。绝大多数现代电脑都是64位,那就下载Windows installer (64-bit) 这个文件。如果不小心下错了32位版本,虽然也能跑起来,但以后装某些对性能有要求的第三方库可能会碰到奇奇怪怪的问题。

安装过程里有一个特别关键的勾选项:Add Python to PATH。这个选项通常在安装界面最底部,默认是不勾选的,但如果不勾选,装完之后在命令行里输入python会提示“不是内部或外部命令”,到时候还得手动配置环境变量,对新手来说非常劝退。所以安装时一定要把这个选项勾上,这一步能省掉后面一大半麻烦。

安装路径方面,可以用默认的C盘路径,也可以自定义到一个好记的位置,比如D:\Python3。自定义路径的好处是以后找文件、排查问题都直观,但要注意路径里不要出现中文和空格,否则某些第三库在编译时可能会报编码错误。

1.2 验证安装是否成功

装完之后怎么确认真的装好了?很简单,按Win + R键打开运行窗口,输入cmd回车,打开命令行窗口,然后敲一句:

python --version

如果显示类似Python 3.11.4这样的版本信息,说明安装成功。如果提示找不到命令,先别慌,多半是刚才那个“Add Python to PATH”没有勾选,或者勾选了但没生效。

这时候有两个补救办法。第一个办法是手动添加环境变量:右键“此电脑”选“属性”,点“高级系统设置”,再点“环境变量”,在“系统变量”里找到 Path 这一项,双击编辑,把Python的安装路径和scripts目录都加进去。比如我装在D:\Python3,那就加两条,一条是D:\Python3,一条是D:\Python3\Scripts,后者主要为了让pip命令也能被识别。

第二个办法更省事,直接把之前装好的Python卸载掉,重新运行安装包,这次记得勾选“Add Python to PATH”再装一遍。不要觉得重装麻烦,对于新手来说,重装往往比手动配环境变量更快、更稳。

装好之后还可以顺手验证一下pip,这是Python的包管理工具,以后装第三方库全靠它。在命令行里输入:

pip --version

能输出版本信息就说明pip也正常。后面你需要安装requests、pandas这类库时,一条pip install 库名就能搞定。

2. 开发工具选型:别在编辑器上犯选择困难症

2.1 三种常用工具横向对比

Python代码说白了就是纯文本文件,理论上用记事本都能写。但真正上手之后,你会发现一个好用的编辑器能显著提升效率。我自己用过不少工具,这里把最适合新手的三种拉出来对比。

工具适合场景优点缺点
IDLE零基础、临时跑小代码装完Python自带,零配置,打开即用提示功能弱,界面简陋
VS Code日常开发、学习全程免费、插件丰富、调试方便、跨平台需要花点时间配置
PyCharm正式项目、专业开发功能最全,智能提示强,集成了很多开发工具社区版阉割部分功能,专业版收费

网上有很多人推荐新手直接上PyCharm,但我的看法不一样。PyCharm确实强大,但对刚接触编程的人来说,界面太复杂,各种窗口和按钮容易让人产生“我是不是漏学了什么”的错觉。而IDLE又太简陋,写稍长一点的代码就感觉施展不开。

2.2 我推荐的组合:VS Code + 插件

如果让我现在给新手一个配置方案,我会推荐VS Code。它下载免费,断网也能装,启动速度比PyCharm快,而且配合插件后,写代码的体验并不比PyCharm差太多。

具体配置就三步。第一步,去VS Code官网下载安装包,安装过程一路点“下一步”,不用改任何选项。第二步,打开软件,左侧边栏找到扩展市场图标,搜索“python”,安装微软官方出的那个Python扩展,注意认准发布者是Microsoft,避免装到奇怪的同名扩展。第三步,按Ctrl+Shift+P打开命令面板,输入Python: Select Interpreter,选择你刚装好的那个Python解释器版本。

配置完成之后,VS Code就具备了语法高亮、代码补全、运行调试这些核心功能。写好的代码文件保存时以.py结尾,比如hello.py,然后在编辑器里右键选“Run Python File in Terminal”,代码就能直接运行并看到输出结果。

在这里也要单独说一句:如果你电脑配置比较陈旧,内存只有4G,VS Code可能跑起来稍有些吃力。这种情况下我建议先用IDLE过渡,等后面代码量真的大了再换工具,完全没问题。

3. 第一个程序:先让电脑开口说话

3.1 用 print 输出内容

Python入门的仪式感来自那一句print("Hello, World!")。打开编辑器,新建立一个文件,输入这句代码,保存为hello.py,然后运行。屏幕上如果打印出Hello, World!,恭喜你,能亲手让电脑执行指令了。

print是Python内置的函数,作用就是把括号里的内容输出到屏幕上。这里有几件细节值得理解透彻。

第一,括号里的内容要用引号包起来,单引号和双引号都可以,效果一样,但不能一边是单引号一边是双引号。比如print("Hello")是合法的,print('Hello')也是合法的,但print("Hello')就会直接报语法错误。

第二,print可以同时输出多个内容,中间用逗号分隔。比如:

print("我叫", "小明", "今年", 18)

运行结果会是我叫 小明 今年 18。注意,逗号会在输出时自动变成一个空格。

第三,print默认输出完会自动换行。如果你不希望换行,可以加一个end参数,比如:

print("Hello", end=" ") print("World")

这样两次输出的内容就会出现在同一行,中间用空格隔开,结果是Hello World

刚开始学编程的人容易忽略的是:缩进和标点符号必须用英文半角。在中文输入法状态下敲出的括号和逗号,Python是不认识的。这个坑几乎每个新手都踩过,我当初也是被一个中文冒号活活在编辑器里耗了二十分钟。

3.2 用 input 让程序听你说话

输出学会之后,下一步就是让程序能接收用户的输入,这就要用到input函数。写一个“自我介绍”的小程序:

name = input("请输入你的名字:") print("你好,", name)

运行后,控制台会先显示“请输入你的名字:”,等你敲入文字并按下回车,程序才会继续执行,把“你好, [你刚才输入的内容]”打印出来。这里演示了一个非常重要的概念——变量。name就是一个变量,它像一个盒子,负责把用户输入的内容存起来,等后面需要的时候随时取出来用。

input函数有一个容易埋雷的地方:不管你输入的是数字还是文字,它返回的原始类型永远是字符串。打个比方,你问用户“请输入你的年龄:”,他输入了18,但你拿到的18在Python眼里是文本“18”,不是数值18。如果你直接用age + 1去计算明年多大,程序会直接报错,提示你不能把字符串和整数相加。

正确的做法是做一次类型转换,用int()把字符串转成整数:

age = int(input("请输入你的年龄:")) print("明年你", age + 1, "岁")

类似的还有float()转小数、str()转字符串。写程序的时候,心里时刻要有一根弦:类型对不对?这比代码能不能跑通过重要得多。

4. 核心语法速览:变量、类型、判断和循环

4.1 变量与常用数据类型

Python是一门动态类型语言,意思是变量不需要提前声明类型。你可以直接写a = 5,也可以下一行写a = "hello",解释器都不会拦你。这种灵活性对新手友好,但也会带来一个隐患:代码写长了之后,你可能会忘记某个变量里存的到底是什么类型,导致运行时错误。所以给变量起名的时候尽量语义化,比如用user_name而不是n,用total_price而不是t

Python里最常用的几种数据类型,我列了一张表:

类型写法示例说明
int(整数)age = 18没有小数点的数字
float(浮点数)price = 19.9有小数点的数字
str(字符串)name = "小明"文本内容,用引号包裹
bool(布尔)is_student = True只有 True 和 False 两个值
list(列表)scores = [80, 90, 85]一组数据,可追加可删除
dict(字典)person = {"name": "小明", "age": 18}键值对结构,适合表示有属性的对象

在列表和字典上下功夫特别值。初学者经常搞不清它们的区别——列表是按顺序排的一串元素,想取第2个就写scores[1];字典是“按名字找值”,想知道这个人的年龄就写person["age"]。这两个结构几乎覆盖了日常自动化脚本里80%的数据组织需求。

顺便解释一下索引为什么从0开始。你要是较真问Python的设计者,他们会回你一句“从0开始是Python的惯例”。实际上这是从C语言继承过来的传统,scores[0]表示列表里的第一项。新手在这里会犯迷糊,scores[1]取出的其实是第二项,特别容易对不上号。

4.2 条件判断:让程序学会做选择

程序最常见的逻辑之一就是根据条件做不同的事,这用到ifelifelse三个关键词。来看一个判断成绩等级的例子:

score = 85 if score >= 90: print("优秀") elif score >= 60: print("及格") else: print("不及格")

这段代码运行后,因为score是85,会走中间那条分支,输出“及格”。

理解这段代码的关键在于两点。第一是条件判断的顺序,从上到下依次判断,一旦某个条件成立,后面的分支就全部跳过。所以条件的先后顺序是有讲究的,如果把score >= 60写在前面,那85分在第一步就被拦截了,永远到不了“优秀”那条分支。第二是缩进,同一层逻辑的代码必须缩进对齐。Python通过缩进来区分代码块,这和其他语言用花括号{}不一样。

这里还有一个经常被忽略的比较运算:判断相等用的是==,而不是==是赋值,意思是把右边的值存到左边变量里;==才是判断左右两边是否相等。新手写if 1 = 1会立刻报错,原因就是混用了这两者。

5.1 条件判断的延伸:逻辑运算

现实里的判断很少只有单一条件。比如商家要发优惠券,要求是“消费满100元且会员等级不低于2级”,这就是两个条件同时成立。在Python里用and表示“且”,用or表示“或”,用not表示“取反”。

spend = 150 member_level = 3 if spend >= 100 and member_level >= 2: print("满足优惠券发放条件")

还可以更进一步,判断一个数是否在某个区间,比如判断及格且非满分:

score = 85 if 60 <= score < 100: print("及格,但不是满分")

这种连续比较写法在Python里是允许的,读起来跟数学表达式一样自然。相比写score >= 60 and score < 100这种完整写法,紧凑不少,也很容易看懂。这是我日常写代码比较偏爱的一种风格,新手也可以大胆用。

5.2 循环:让重复的事自动跑

生活中大量任务是重复性的。假如你要把一个列表里的每个数字都打印出来,手写五遍print就够痛苦了,要是一百遍呢?这就要用for循环。

scores = [80, 90, 85] for s in scores: print(s)

运行结果会依次输出809085。这个语法可以这样理解:对于列表scores里的每一个元素,把它临时命名为s,然后执行一次缩进的代码块。循环几次,就执行几次。

如果不想遍历列表,只想要一个递增的序列,可以用range函数配合使用:

for i in range(5): print(i)

输出是0 1 2 3 4,注意还是从0开始,一共5个数字。如果想从1到5,就写成range(1, 6),左闭右开,含头不含尾。这个设计初看奇怪,习惯之后会发现写代码非常方便,比如要生成10个1到3之间的随机数,或者按行处理一个文件的前N行,都靠这个机制。

还有一种while循环,它更适合“不知道什么时候结束”的场景。比如做一个猜数字的小游戏,用户一直猜,猜对了才退出:

secret = 7 guess = 0 while guess != secret: guess = int(input("请猜一个数字:")) print("猜对了!")

这里的while guess != secret表示:只要guess不等于secret,就不断重复执行循环体里的内容。一旦用户输入了7,条件不再满足,循环自然结束,接着打印“猜对了”。

while循环有一个常见风险是死循环。如果条件永远为真,程序就会一直卡在那里不结束。调试的时候遇到程序没反应,先检查循环条件有没有可能一直成立。

5. 新手最容易踩的报错和排查思路

5.1 环境与命令类报错

学习Python的头两周,我几乎每天都会在命令行里碰到“报错”。有些报错看起来很吓人,其实原因很简单。整理几个高频的:

'python' 不是内部或外部命令,也不是可运行的程序或批处理文件。这个提示出现在Windows命令行里,说明系统在环境变量里没有找到Python。解决办法前面说过,要么重装时勾选“Add Python to PATH”,要么手动配置环境变量。

pip 不是内部或外部命令。pip是跟着Python一起装的,正常情况下在命令行里直接输入pip就能用。出现这个提示,大概率是Python安装目录下的Scripts文件夹没有加到环境变量里。处理方式和上面一样,把Scripts目录路径补进Path里就行。

还有一种是“我已经装了Python,但命令行里显示的是另一个版本”。这种情况很常见,原因是电脑里存在多个Python版本,命令行找到的是旧的或者Anaconda自带的那个。不同的安装来源会在环境变量里产生冲突,输入where python可以看到命令行实际调用的是哪个路径。

报错信息常见原因处理办法
'python' 不是内部或外部命令未加入PATH或安装异常重新勾选Add Python to PATH并重装
'pip' 不是内部或外部命令Scripts目录不在PATH手动补全环境变量
命令行版本和预期不一致多个Python共存输入where python检查路径
ModuleNotFoundError: No module named 'xxx'第三方库未安装执行pip install xxx安装

5.2 语法与逻辑类报错

这类报错的位置通常精确到行号,报错信息也会给出具体原因,新手要养成“读最后一行”的习惯。报错信息里最下方的一段往往是关键。

SyntaxError: invalid syntax,这表示某个地方语法写错了。常见原因是引号或括号不匹配、少写了冒号、中英文标点混淆。排查技巧是在出错的代码行前后多看几行,定位到具体字符。

NameError: name 'xxx' is not defined,意思是“变量xxx没有被定义”。可能是拼写错误,也可能是变量在使用之前没有赋值。调试的时候先在代码里搜索这个变量名,看看是不是大小写写错了。

TypeError: can only concatenate str (not "int") to str,这是个典型的类型错误。我用一个案例来说明。你写了一句print("总价:" + total),其中total是一个数字,而字符串和数字用+拼接时Python会拒绝执行。解决办法是把数字转成字符串:print("总价:" + str(total)),或者直接用逗号print("总价:", total)

IndexError: list index out of range,这是取列表元素时下标越界了。比如一个列表只有3个元素,合法下标是0、1、2,你却尝试取scores[3],程序就会抛这个异常。排查时先打印出列表的长度,再检查下标有没有超出范围。

5.3 读报错信息的通用技巧

很多初学者一看到控制台飘红就开始慌,其实报错信息是程序给你最靠谱的线索。我的习惯是三步走:第一步,看最底部的异常类型,搞清楚是哪一类问题,在这个阶段只需要记住几个常见的就行;第二步,看提示的文件名和行号,定位到具体代码;第三步,把那一行代码单独抽出来,在脑子里模拟一遍执行过程,检查变量值、类型和符号。

举个例子,报错信息是这样的:

Traceback (most recent call last): File "main.py", line 8, in <module> print("你好" + year) TypeError: can only concatenate str (not "int") to str

第一眼看上去很长,但最有价值的是最后一行,它告诉你第行代码中,字符串 “你好” 试图和一个整数拼接,导致报错。再去看看year的结果,果然是从input里拿到的原样字符串,因为input返回的是字符串,但这里是year,说明year本身是字符串。等一下,我们假设year是从表单拿到的数字,经过转换后变成整数就会这样报错。所以要把整数用str(year)包一层,或者改回print("你好", year)

这种读报错–定位–修复的流程,练习十次左右就会形成肌肉记忆。学习编程的第一关其实不是“写代码”,而是“面对报错不慌”。你处理报错的能力越强,学习效率就越高。

6. 我给初学者的几条经验总结

笔记写到最后,想说几句实际操作的体会。

第一,代码一定要亲自敲一遍,而不是“看会了”。我见过太多人收藏了大量教程,打开视频盯着看,感觉每一步都懂,真正自己写的时候却一行都敲不出来。看代码和写代码是两种能力,后者只能靠手敲练出来。

第二,遇到报错不要急着抄到搜索引擎里。先自己读一遍报错信息,试着找到问题所在。实在解决不了再把报错信息原样贴到搜索框里,一般都会有前人踩过同一个坑。直接搜“报错原文+自己的场景关键词”,比漫无目的地搜索高效得多。

第三,基础语法过完之后,尽快去做一个自己能用到的小项目。哪怕只是写一个自动整理桌面文件的脚本、做一个BMI计算器、写一个简单的记账程序都行。做项目才是把语法内化的过程。语法书读十遍,不如自己动手写一个小工具,遇见的每个报错都会变成真正的经验。

这篇笔记记录的是Python起步的完整过程,也是我自己真实花费时间走过的一条路。后续我会继续更新系列的下一篇,到时候往函数和文件处理这些方向再深入一层。

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

Gradle依赖管理实战:版本目录、仓库镜像与依赖锁定全解析

简介&#xff1a;面向Android开发者及项目构建维护者&#xff0c;这是一份以Gradle依赖统一管理为核心的资源包&#xff0c;解决多模块工程中依赖版本分散、升级困难与构建命令繁杂的问题。包内通过config.gradle等配置文件集中管理依赖版本&#xff0c;配合Gradle Wrapper保证…

作者头像 李华
网站建设 2026/9/8 6:10:09

基于VS2022的NXOpenCPP二次开发模板:从零搭建NX插件工程

简介&#xff1a;面向UG NX二次开发人员的VS2022编程模板&#xff0c;主要解决NX10.0搭配Visual Studio 2022时官方模板无法正常显示的问题。资源基于NXOpenC接口设计&#xff0c;适配VS2022环境&#xff0c;适用于需要在新版IDE中快速创建NX二次开发项目的工程师。压缩包仅14K…

作者头像 李华
网站建设 2026/9/8 6:08:58

短视频平台技术架构对比:算法推荐、视频编码与用户体验优化

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/8 6:08:57

五颗芯片拼出全栈系统:感知、控制与电力线通信实战拆解

做嵌入式这几年&#xff0c;我越来越觉得&#xff0c;真正考验功力的不是你会用某颗芯片&#xff0c;而是能不能把一堆看似各管一摊的料&#xff0c;拼成一条能跑通、能落地、能扛住现场环境的产品链路。前几天有个做智能设备的朋友拿着一份采购清单来找我&#xff0c;上面是F2…

作者头像 李华
网站建设 2026/9/8 6:07:04

AI动作复制:从视频到机器人/数字人的技术链路与工程实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/8 6:07:02

时间知识图谱构建指南:从文本到动态关系可视化

当你面对18万字的文本数据时&#xff0c;第一反应是什么&#xff1f;是直接扔给大模型做摘要&#xff0c;还是用传统的关键词提取工具&#xff1f;这些方法确实能给出结果&#xff0c;但往往会丢失文本中最有价值的东西——事件的发展脉络和实体关系的动态变化。这正是时间知识…

作者头像 李华