简介:这份2020版Python入门教程面向零基础学习者和希望达到工程师水平的进阶者,内容覆盖Python基础语法、面向对象、文件操作、模块与包、常用标准库与第三方库、网络编程、SQL数据库操作、核心数据结构、错误调试、单元测试以及Web开发、数据分析等实战项目,体系完整且贴近真实开发场景。压缩包约508.89MB,内含配套笔记、示例代码、课件和拓展资料,笔记适合系统梳理和回顾,代码可对照练习,课件提供讲解演示,资料进一步补充NumPy、Pandas、Matplotlib、SQLAlchemy、pytest等工具的使用思路。目前已有18372人学习下载,热度与认可度较高。通过系统学习,读者能掌握从Python语法到工程实践的完整路径,并具备基于Flask/Django搭建Web服务、用Pandas做数据分析或编写自动化脚本的能力,为成为Python工程师打下扎实基础。
1. Python 到底是什么:为什么编程新手都从它开始
很多第一次接触编程的人,脑子里都有一个相同的困惑:编程是不是得先背一堆看不懂的英文,再学一堆数学公式,最好还能把电脑黑匣子拆开看看?其实不是。Python 这门语言,最大的特点就是"说人话"。它不端着、不绕弯子,让你把注意力全部放在"怎么解决问题"上,而不是"怎么伺候这门语言"。举个例子,如果让计算机显示一句话,很多语言要写好几行,Python 里一句话就够。这也是为什么几乎所有的入门教程、大学选修课、零基础转行路线,都把 Python 放在第一站。
这套 Python 教程 2020 版全套资料,就是一条把完全新手带到入门开发水平的完整路径。它把笔记、代码、课件、资料整理成一套可以直接上手跟着学的体系。内容适合完全没写过代码的人,也适合在学校学过一点但没学明白的人。你不需要提前懂任何编程概念,只要会操作电脑、会打字,就可以往下走。这篇文章会带你从零起步,讲清楚前期要准备什么、第一个程序怎么跑通、哪些坑最容易踩,把这几个问题解决掉,你对编程的陌生感就消失一大半了。
2. 先把环境搭起来:装 Python 和写代码的编辑器
2.1 装 Python 本身:别追求最新,选稳定版本
学 Python 的第一步,就是让电脑里有一个能运行 Python 代码的环境。很多新手一上来就搜索"Python 下载",然后看到一个最新版本号就装上了,结果后面跟着教程做,发现某个语法在教程里能运行、在自己电脑上报错,大概率就是版本不一致造成的。
入门的话建议先装稳定版本。这里说的"稳定版本"指的不是最旧的,而是生态兼容性比较好的。你打开 Python 官网的下载页面,会看到很多版本号,选那个标记为当前稳定版的大版本就好。下载的时候注意看系统位数,Windows 用户优先选 64 位的安装包,因为现在绝大多数电脑都是 64 位系统。
安装过程里有一个非常关键的坑:在安装向导的第一个界面,一定要勾选下面的"Add Python to PATH"选项。这一步的作用是让系统知道你把 Python 装在了哪里,相当于把 Python 登记进系统名册。如果不勾,后面你在命令行里输入 python 会提示"不是内部或外部命令",那会是你遇到的第一个劝退级报错。
2.2 装一个写代码的编辑器:IDLE 够用,VSCode 更好
装完 Python 之后,系统会自带一个叫 IDLE 的简单编辑器。它的样子很朴素,就像记事本加了一个运行按钮,但对于零基础的人来说完全够用。你可以直接在里面写代码、按 F5 运行,不需要配置任何东西。我第一次学的时候就是从 IDLE 开始的,它最大的好处是省心,不会让你在处理编辑器配置上消耗热情。
当你写完几个小例子、开始觉得 IDLE 不太方便的时候,再换到 VSCode 或者 PyCharm 也不迟。VSCode 是很多开发者日常在用的编辑器,免费、轻量,装一个 Python 插件之后就能写代码了。它最友好的地方在于:文件目录显示在左边,代码有颜色区分,报错时会在问题面板里直接告诉你哪一行出了问题。对新手来说,这个可视化反馈太重要了,它把你从"对着黑窗口猜错误"里解放出来。
2.3 第一个程序:让 Python 跟你说 Hello
环境装好了,我们就跑第一个程序。打开 IDLE,点击菜单栏里的 File -> New File,会弹出一个空白的编辑窗口,在里面输入这一行:
print("Hello, Python!")然后按 F5 运行,程序会要求你先保存文件,文件名可以随便起,比如 first.py,注意后缀一定要是 .py。保存之后你会看到输出窗口打印出了一行字:Hello, Python!
这行代码的含义非常简单:print 是 Python 内置的一个函数,它负责把括号里的内容显示到屏幕上;括号里用双引号包起来的文字叫字符串,就是你要输出的内容。整个程序就做了一件事:把"Hello, Python!"这句话亮给你看。别小看这一步,它是你写的第一个程序,也是你第一次亲眼看到自己写下的东西被电脑执行。这个过程跑通了,后面所有代码都建立在同样的逻辑上:写代码、运行、看结果。
提示:如果按 F5 运行后提示语法错误,先检查一下两边的引号是不是英文的双引号。输入法在中文状态下打出来的引号会被 Python 直接拒绝,这是新手第一个月最容易碰到的问题。
3. 先搞懂三个基础概念:变量、数据类型、条件判断
3.1 变量:给你的数据起一个名字
编程里最基础的动作,不是打印一句话,而是把数据存起来。变量就是你给数据起的名字。先看这个例子:
name = "小明" age = 18 print(name) print(age)运行之后会输出两行:第一行是小明,第二行是 18。这里的 name 和 age 就是变量。变量名在前,等号在后,数据值在最后。Python 看到这行代码,会先把等号右边的数据计算好,再把它存进左边名字对应的空间里。之后再想用这个数据,不需要重新写一遍,只要写变量名就行。
变量名不是随便起的。入门阶段建议养成两个习惯:第一,变量名要能看出它的含义,比如存年龄用 age,存名字用 name,这样代码过几天再看还能快速想起它在干嘛;第二,不要用 Python 已经占用的关键词,比如 if、for、while 这些,具体有哪些关键词,报错的时候会有提示,遇到了就直接换一个名字。
3.2 数据类型:字符串和数字是两种东西
你在控制台里输入的内容,和你在纸面上写的内容,最大的区别在于:电脑对数据的类型非常较真。Python 里最常用的三种类型是字符串、整数和浮点数。字符串就是被引号包裹的文字,整数就是 1、2、3 这样的数字,浮点数就是像 3.14 这样带小数点的数。它们之间的区别平时看不出来,一旦混用就会立刻报错。
最典型的例子是这样:
age = 18 print("我今年" + age + "岁")这段代码运行时会报错。原因在于:age 是整数类型,而"我今年"是字符串类型,Python 不允许直接用加号把字符串和整数拼在一起。解决的办法有两个:用 str() 把数字转成字符串,或者用格式化字符串。格式化字符串是更推荐的方式,它长这样:
age = 18 print(f"我今年{age}岁")f 放在引号前面,大括号里写变量名,Python 会自动把变量的值填进去。这种方式可读性好,也不容易出错,新手可以直接养成习惯用 f-string。
3.3 条件判断:让程序自己做决定
程序之所以是程序,是因为它能根据不同的情况做出不同的反应。条件判断语法用 if、elif、else 三个词来写,看下面这个例子:
score = 85 if score >= 90: print("优秀") elif score >= 60: print("及格") else: print("不及格")运行结果是:及格。这个逻辑用大白话讲就是,Python 从上往下依次检查条件:分数是否大于等于 90?不是,跳过;是否大于等于 60?是,执行对应的打印语句,后面就不再检查了。如果没有一个条件满足,就执行 else 下面的语句。
这里有一个新手几乎必踩的细节:if 那一行末尾有一个冒号,冒号下面的代码必须缩进。Python 用缩进来表示"哪些代码属于这个条件",缩进不一致会导致 IndentationError 报错。入门阶段统一用 4 个空格缩进就好,不要使用 Tab 键。等号与比较符也要区分,if 里写的是双等号 == 表示"是否等于",单个等号 = 表示"把右边的值赋给左边",这两个写错是高频翻车原因。
4. 循环与函数:让代码学会重复劳动和按需调用
4.1 for 循环:把重复的事交给电脑
写代码的一大好处,就是让电脑替你做重复的事。比如你想打印 5 遍"今天也要加油",手工复制粘贴当然可以,但如果你想打印 5000 遍,手工就完全不可行了。这时候循环就该出场了。
for i in range(5): print("今天也要加油")range(5) 的意思是生成一个从 0 到 4 的整数序列,循环会执行 5 次。变量 i 在每次循环时依次取到序列里的值。上面这段代码里的 i 实际上没有被用到,它的作用只是控制循环次数。如果想在打印内容里带上当前的次数,可以这样写:
for i in range(5): print(f"这是第 {i + 1} 次加油")输出结果会是:这是第 1 次加油、这是第 2 次加油……直到第 5 次。注意为什么写 i + 1 而不是 i?因为 range(5) 从 0 开始,i 第一次取到的是 0,加上 1 才是我们习惯的"第 1 次"。这是循环里最经典的细节,几乎每个新手都会在这里停顿一下。
4.2 用列表存一批数据:循环才有真正的用武之地
循环单独用,价值有限;循环配合列表使用,才是解决实际问题的开始。列表是 Python 里用来存一批数据的容器,用中括号包裹,里面的数据用逗号隔开。看下面这个例子:
fruits = ["苹果", "香蕉", "橘子"] for fruit in fruits: print(f"我喜欢吃{fruit}")这个循环的含义是:从 fruits 列表中依次取出每一项,存进变量 fruit,然后打印一句包含它的内容。相比 range 那种纯计数循环,这种写法更像是"按内容遍历",代码读起来也接近自然语言。
列表常用的操作还有两个:向尾部追加数据用 append 方法,获取列表长度用 len 函数。比如 fruits.append("西瓜") 之后,列表变成四项。这些操作以后在真实项目里每天都会用到,属于必须熟练掌握的级别。
4.3 函数:把一段逻辑打包,随用随取
当你把一段代码贴了三次以上,就该考虑把它写成一个函数了。函数就是给一段逻辑起一个名字,以后想用就调用这个名字。定义函数用 def 关键字,看这个例子:
def greet(name): print(f"你好,{name}!欢迎来到Python世界。") greet("小明") greet("小红")这段代码定义了一个名为 greet 的函数,它接收一个参数 name。函数体内部打印一句欢迎语。最后两行是调用函数,传入不同的参数,就会输出不同的结果。函数的好处是:你只需要把逻辑写一遍,后续所有的调用都复用同一份代码,出问题也只需要改一处。
写函数的时候要注意几个点:参数的个数和顺序要记清楚,函数体内的缩进和 if 循环一样严格,函数定义完没有调用就不会执行。初学者最容易犯的错,是把函数里想用的变量名写错,比如定义时写的是 name,函数体里打成了 nanme,运行时就会提示名称未定义。看到这种报错先检查拼写,这是血泪经验。
5. 新手最容易踩的 5 个坑:现象、原因、解决办法
5.1 双击 .py 文件,窗口一闪而过
很多人写完第一个程序,保存了一个 .py 文件,然后双击它,屏幕上闪了一下黑窗口就消失了,什么都没看到。这其实是程序正常执行完了,窗口被系统自动关闭了。解决办法有很多,推荐用两种:第一种,在代码最后加一行 input(),程序运行完毕后会等待你按回车再关闭窗口;第二种,从命令行运行这个文件,在 cmd 中切换到文件所在目录,输入 python first.py,结果会停留显示。记住,一闪而过不代表程序有问题,只代表运行结束了。
5.2 报错 SyntaxError: invalid character '('
你可能会觉得代码写得和教程一模一样,但一运行就提示遇到了非法字符。这时候通常会看到报错信息里有两个长得和英文很像的字符,比如中文的括号、中文的引号。原因是你的输入法还处于中文状态,代码里的标点全被替换成了全角符号。Python 只接受英文标点。解决办法是:编写代码前把输入法切成英文模式,重点检查括号、引号、逗号;写完之后如果报错,光标也会指向出错位置,把那个位置的字符删掉换英文再试一次。
5.3 IndentationError: expected an indented block
if、for、def 这类语句的下面一行没有缩进,或者缩进量和其他行不一致,就会触发缩进错误。Python 用缩进划定逻辑块的范围,所以它对缩进极其敏感。新手常见的操作是把代码从网页或文档复制过来,结果粘贴后缩进变成了 Tab 键,与代码里原有的空格缩进混在一起。解决办法是统一缩进风格:建议全用 4 个空格。在文本编辑器中可以开启"显示空白字符"功能,这样缩进到底是空格还是 Tab 一眼就能看出来。
5.4 TypeError: can only concatenate str (not "int") to str
这个报错发生在字符串和数字直接相加时,对应前文提到的数据类型问题。比如 print("我今年" + age + "岁"),age 是整数,而"岁"是字符串,Python 不允许混着加。解决方法不是把数字强塞进字符串,而是先把数字转成字符串,或者直接使用 f-string 格式化。对于入门阶段,我建议优先学会 f-string,它更顺眼,也减少了类型转换出错的机会。遇到 TypeError,你就先想想"这句话里是不是把不同类型的值拼在一起了"。
5.5 代码运行没有报错,但结果和预期不一样
这是最让人困惑的坑,因为程序没有给出任何提示。常见的隐蔽原因是变量名写重了。比如前面定义了一个 age = 18,后面又写了一行 age = "十八岁",之后所有用到 age 的地方都会变成字符串。另一个隐蔽原因是 if 判断里用了单个等号而不是双等号,导致变量被重新赋值而不是比较。遇到这种情况,不要急着改代码,先一步一步检查逻辑:打印出关键变量的当前值,确认它到底是什么内容、什么类型,往往一眼就能发现问题所在。
6. 下一步学什么:从语法走向真实项目
到了这里,你已经掌握了变量、类型、条件、循环、函数这套核心语法,可以开始往真实方向走了。下一步建议按下面这个顺序展开学习,每个阶段都配合动手写一个小程序。
第一阶段是文件读写和异常处理。学会了从文件读取数据、把结果写入文件,你的程序才开始"留下痕迹"。试着写一个记账本程序,每次运行都往文件里追加一条记录,这比 Print 出来的文字有意义得多。第二阶段是面向对象编程。用 class 定义自己的数据类型,把相关的数据和操作封装在一起。入门时可以模仿一个场景:用类来表示学生、课程、考试成绩,模拟一个小组的学习记录。第三阶段是常用的标准库。建议先熟悉 os、json、datetime 这几个模块,它们能帮你处理文件夹、解析数据、计算时间,这些在几乎所有项目里都会用到。
这套资料里包含的笔记、代码、课件和资料,可以配合上面的路径使用:先看对应章节的课件建立整体认识,再跟着笔记里的代码例子逐行敲出来,最后不借助资料、凭记忆把代码重新写一遍。这个"输出式学习"比单纯看一遍有效得多。当你把文件读写、面向对象、常用库这一套走完,就已经具备独立做一个小的数据处理脚本或简单的命令行工具的能力了。之后再决定往数据分析、爬虫还是 Web 开发方向深造,即可。
我自己的习惯是:每学完一个模块,强制自己闭卷写出一个能跑的例子,哪怕只是二十行的迷你版。这个习惯让我在语法细节上少踩了很多坑,也让我对"我到底学会了没有"有了明确的判断标准。希望帮到你。
本文还有配套的精品资源,点击获取