
简介千锋教育Python入门教程PDF面向零基础入门者及K12阶段对编程感兴趣的读者对应官网整套视频课整理成文档帮助快速建立Python知识框架。资源为单份PDF文件大小663KB适合在电脑或移动端随时翻阅已有990人学习下载。内容按23周10大阶段梳理涵盖Python语言基础、第三方库、PyQt开发、Linux运维自动化、MySQL/Oracle数据库、HTML5与JavaScript前端基础以及爬虫、Django/Flask网站开发、机器学习与树莓派物联网等实战方向。虽为入门定位但知识链条完整可作为自学路线图与速查手册让读者既能了解语法要点也能看清从Web开发到数据分析、自动化运维的进阶路径。1. 这份被转存无数次的Python入门教程PDF到底在教什么网盘里躺着的这份几百页的Python入门教程PDF可能是很多人收藏夹里的“远古遗迹”文件是某培训机构早年放出的公开课件目录做得工整、截图也够多但一装上新版Python照着敲第一段代码就报错。我的判断是这份教程最大的价值不在“读”而在“当练习册用”——把里面带着旧时代痕迹的代码搬到新环境里改到能跑这个过程比任何视频课都让人入门快。它适合两类人完全没写过代码、想用一份离线文档慢慢啃的纯新手以及被视频教程带着走但想补基础语法的半新手。建议别抱着“从头到尾读完”的心态打开那会很快放弃。2. 读之前的三个检查PDF版本、Python语言版本、代码质量拿到任何一份Python入门PDF先别急着从第1页开始读。血泪经验教程的“年龄”比厚度重要得多。Python 2和Python 3、甚至3.5和3.10之间的写法差异足以让一个零基础的人第一天就卡在“教程写的和电脑报错对不上”的状态。我一般会花15分钟做三个检查判断这份文档还值不值得跟、该用什么姿势跟。2.1 先看目录判断这份教程在教“什么时代的Python”Python教程最容易过时的部分不是概念——变量、循环、函数到今天依然成立而是“语法表象”打印要不要括号、输入函数叫什么、整数除法会得到什么。打开PDF目录快速扫几处有没有专门讲“Python 2与Python 3区别”的章节有的话说明成书时间在两代交替期。翻到“基础语法 / 第一个程序”部分看示例代码里print后面跟的是空格还是左括号。找“输入”相关章节如果函数名是raw_input可以直接断定教程基于Python 2。判断成书时间还有一个土办法看版权页或封面有没有写“基于Python 2.7”很多培训课件会把这句放在显眼位置。大多数情况下这类教程基于Python 2.7录制少部分基于3.4或3.5。这个判断决定了后续学习策略老教程不用扔但你在读的时候要默认“代码可能跑不了”把“改代码”当成学习环节之一。有的读者会问直接找一份新教程不就好了现实是很多人手里就这一份离线PDF或者已经跟着目录读了一半重换成本更高。老教程讲的概念和编程思维并不过时语法层差异是可以通过迁移操作弥补的。我的习惯是先花几分钟确认它能跟再决定是按章节顺序读还是挑重点章节读。2.2 翻几个章节的代码截图版本和质量的快速体检确认完大版本再随机翻到“字符串”“列表”“文件读写”三章各看两三段代码。我自己的检查清单是字符串是否带着u中文前缀——Python 3里字符串默认Unicode前缀冗余但无害如果出现unicode()函数则是2.x专属。文件读写是否用open()且没带encoding参数——老写法在新版下读中文文件容易乱码。代码块有没有行号、有没有用提示符——有行号的版本复制时要小心行号混入。代码缩进是否统一为4个空格还是混着Tab——混用Tab会在新版编辑器里直接报错。我一般把代码质量分成三档高有缩进有注释、变量命名清楚可以逐章跟中能跑但没注释需要自己理解低代码截图模糊、被PDF排版截断这种章节直接跳过去参考官方文档。下表是我做体检时的参考检查项老版本迹象对学习的影响打印语句print Hello无括号需改为print(Hello)输入函数raw_input(...)需改为input(...)整数除法5 / 2结果是2新版结果是2.5需用//取整字符串前缀u中文可去掉不影响运行字典判断dict.has_key(k)需改为k in dict做完这个体检你对整份教程的“老化程度”就有底了。接下来的一步很关键确认这份PDF能不能复制代码。2.3 确认PDF是文字版还是扫描版决定你后面怎么学操作步骤很简单在PDF阅读器里用鼠标选中一段正文试试能选中并复制出文字是文字版。选中不了或复制出来是乱码、空白是扫描版或图片版。看文件大小做辅助判断纯文字PDF一般几MB以内几十MB以上的多半是图片版。文字版的优势是代码可以直接复制到编辑器里省去打字数但要小心PDF的换行和空格问题——这会在后面专门讲。扫描版没法复制代码必须完全手敲。手敲听起来慢但对新手反而是好事每行代码都是自己打出来的语法和缩进会记得更牢。我见过太多人复制粘贴跑通一遍三天后全忘光。确认这三件事加起来不到15分钟但它能避免你后面几十个小时的无效努力。下面进入实操把环境搭起来让教程里的代码真正跑起来。3. 跟着教程跑通第一条代码环境搭建与Hello World实操很多新手的第一道坎不在语法而在环境。这份教程成稿早默认读者用的是当时的Python发行版而你现在电脑上可能什么都没装。常见做法是装一个官方版Python再配一个趁手的编辑器。我不推荐一上来就折腾虚拟环境或 Anaconda——入门阶段学的是语言不是环境管理复杂度压到最低。3.1 装Python之前先决定版本3.8是底线这份教程是2.x和3.x交替期的产物装新版是必然但新版里还要再选一个具体版本。我的底线是3.8以上。理由有二3.8的语法与教程里的基础章节兼容度最高f-string、海象运算符这些新东西不影响旧代码运行。3.8在Windows和macOS上都有稳定的官方安装包第三方库支持也最齐全。安装时有一个经典坑Windows安装包默认不勾选“Add Python to PATH”导致装完在命令行敲python3提示找不到命令。装完后第一时间验证python3 --version如果Windows下提示找不到命令解决方法是重新运行安装包勾选“Add Python to PATH”再装一次或者手动把Python的安装目录加到系统环境变量PATH里。macOS用户一般自带Python 3但版本可能偏旧建议也从官网装一份新版。提示不要为了“兼容教程”去装Python 2.7。那份环境已经停止维护第三方库大多不兼容装了只会让你在之后的每一步都踩坑。3.2 最小可跑环境建一个练习目录跑通第一个脚本环境装好后我建议按下面这套最小流程走不要跳过在用户目录下建一个python_practice文件夹专门放练习代码。用编辑器打开该文件夹新建一个hello.py文件。写入第一段代码。注意这里直接按Python 3语法写教程第一章里如果写的是print xxx这种不带括号的先照下面的改法来# 与教程第一章等效的Python 3版本 print(Hello, Python) print(欢迎来到Python的世界)在终端里切到该目录运行python3 hello.py能看到两行输出即成功。print在Python 3里是函数参数必须放括号里。教程里不带括号的写法在新环境会直接报SyntaxError所以第一条代码就用正确写法建立肌肉记忆。文件名这里有个小讲究别用中文也别用test.py。test是常见模块名可能引发导入冲突中文文件名在跨平台拷贝时容易出现编码问题没必要给自己加戏。3.3 编辑器怎么选IDLE、VS Code还是记事本教程第一章通常会让你打开交互式环境试一行那个交互式环境就是IDLE装Python时自带。新手可以先在IDLE里敲两行感受“回车就有结果”的即时反馈这会给你很强的正反馈。到了第三四天再换到正经代码编辑器里写完整文件。我的建议是分阶段只跟教程做单行练习IDLE够用零配置。准备写完整脚本用一款轻量代码编辑器比如VS Code装好Python扩展用右上角运行按钮即可。它能显示语法高亮和缩进线对新手很友好。不建议一开始用记事本没有缩进提示、没有语法高亮中文字符保存时极易变成乱码。还有两个小习惯值得从一开始养成把编辑器字体调成等宽字体比如Consolas或Courier New把“保存时自动转UTF-8”选项打开。这两个习惯能避免绝大多数中文乱码问题。你可能会觉得这些琐碎但入门阶段的挫败感往往就是这些琐碎堆出来的。跑通了第一条代码下一步要面对的就是老教程里那些“跑不了”的代码。下面专门讲迁移。4. 把教程里的旧写法改成能跑的现代Python语法迁移实操跟着老教程学习你会频繁遇到“书上这么写电脑那么报”。这不是你笨是教程的代码带着2.x时代的旧语法。这一章把高频差异列出来讲清改法再介绍一个批量转换工具。4.1 从print语句到print()函数最显眼的语法分水岭Python 2里print是语句print 你好合法Python 3里print是函数必须写成print(你好)。这是两个版本最明显的分水岭也是新手第一个遇上的报错。需要手动改的常见场景有三种多个输出项print a, b改为print(a, b)结果一样带空格。不换行输出print a,改为print(a, end)末尾的逗号被end参数取代。输出到文件print f, a改为print(a, filef)重定向语法被移除。配套的代码练习# 老教程写法 vs Python 3写法 print 当前数量:, count # 旧写法直接报错 print(当前数量:, count) # 新写法正确 print 进度..., # 旧写法不换行 print(进度..., end) # 新写法不换行逻辑说明end参数默认是换行符对应旧版“print自动换行”的行为sep参数控制多个输出项之间的分隔符默认是一个空格。这两个参数是Python 3版print的扩展能力老教程里完全没有值得单独试两遍。4.2 字符串与编码中文乱码的根源和改法老教程代码里常见u中文前缀和文件头# -*- coding: utf-8 -*-。这是Python 2留下的习惯默认ASCII编码下要处理中文必须声明编码字符串加u前缀表示Unicode字符串。Python 3的字符串默认就是Unicodeu前缀去掉完全不影响文件头声明也可留可去。改法示范# 旧写法 # -*- coding: utf-8 -*- name u张三 # 新写法去掉u前缀文件头保留也无妨 name 张三踩坑细节最麻烦的不是代码里的中文而是Windows控制台的显示。代码没错但运行后中文全部变成乱码。解决方法是运行前在命令行执行chcp 65001切到UTF-8代码页或者代码里先用英文调试通逻辑最后再换成中文。我自己的习惯是先用英文跑通最后再换中文这样出问题能立刻分清是逻辑错还是编码错。4.3 函数级隐性变化xrange、raw_input、除法、异常语法这些差异不需要全背但要知道报错长什么样、去哪个方向改。下面这张表基本覆盖了老教程里最常见的过时写法老写法教程常见新写法Python 3报错或差异xrange(10)range(10)xrange不存在range行为已优化raw_input(...)input(...)raw_input不存在input(...)eval(input(...))旧input会把输入当代码执行5 / 2结果是25 / 2结果是2.5整数除法变真除法取整用//dict.has_key(k)k in dicthas_key方法被移除except Exception, eexcept Exception as e逗号写法直接语法错误print f, xprint(x, filef)重定向语法移除逻辑说明这些差异的本质是Python 3把含糊的语法收紧了——输入一律按字符串处理、除法一律按浮点走、异常绑定用关键字。遇到报错就去表里查对应行比硬背语法快得多。等你写多了会发现新版语法更符合直觉比如k in dict读起来就是“key在字典里吗”。4.4 用一条命令批量迁移2to3的正确用法和边界手动改完上面几类之后剩下的大量机械替换可以用工具完成。Python自带一个转换工具叫2to3能把多数旧语法自动改成新写法。操作方法是把教程里的示例文件复制一份出来命名为demo_old.py然后执行# 先看转换结果不加 -w 只打印差异 python3 -m 2to3 demo_old.py # 确认差异合理后加 -w 写回文件 python3 -m 2to3 -w demo_old.py逻辑说明2to3能做print加括号、xrange改range、异常语法替换等机械转换。-w参数表示写回原文件同时会生成一个.bak备份文件。边界要认清。2to3只做机械替换管不了语义差异旧的input(数字)会计算输入表达式新版input()只是拿字符串这种代码转换后还要手动加int()。教程里的第三方库代码比如爬虫和数据处理部分API变化不在语法层面2to3无能为力只能靠查新版文档。注意处理前一定先复制一份再转不要直接对唯一副本操作。转换结果未必全对随时准备回退到.bak备份。5. 避坑跟这份PDF自学Python最常见的5个翻车现场把教程从头跟下来的人翻车点高度集中而且高度重复。以下5条是我在带新人时见过最多的状况每条按“现象→原因→解决”的顺序拆开方便你直接对号入座。5.1 复制PDF里的代码一运行就报缩进错误现象代码从PDF贴进编辑器后报IndentationError: unexpected indent或者提示混用了空格和Tab。原因PDF排版会把长行重新换行复制出来行首空格数量不对或者原代码块里本就混着全角空格。Python用缩进划分代码块这一层错位立刻报错。解决先在编辑器里把Tab统一替换为4个空格大多数编辑器底部状态栏可直接切换缩进模式。如果替换完还报错就把代码块里所有行首空白删掉重新手打一遍缩进。虽然麻烦但这一遍手敲能让你真正理解“缩进决定代码块归属”。治本的办法是优先在文字版PDF里复制扫描版一律手敲。5.2 教程里的input和实际行为对不上现象教程写age input(请输入年龄)后面比较age 18时报类型错误或者输入数字后没报错但结果完全不对。原因老教程的input()会“执行”你输入的内容类似内置的eval新版的input()只返回字符串。教程没讲这个差异代码对新手来说就成了黑匣子。解决手动改成age int(input(请输入年龄))并养成一个习惯输入一律先当字符串看待需要数字时再手动转换。这样遇到类型问题的时候你至少知道去哪改。5.3 中文注释和字符串乱码、甚至直接报错现象代码里出现中文运行时提示SyntaxError: Non-UTF-8 code starting with \xc4或者程序能跑但print输出全是乱码。原因老教程默认ASCII环境文件保存格式与Python读取编码不一致新版默认UTF-8但Windows控制台默认GBK输出两边对不上就乱。解决编辑器里把文件编码设为UTF-8文件开头保留# -*- coding: utf-8 -*-作为保险新版不会报错运行前在命令行执行chcp 65001切代码页或者直接在VS Code这类自带UTF-8终端的编辑器里运行。5.4 pip安装包成功import却失败现象pip install requests显示安装成功但同一个终端里import requests报ModuleNotFoundError。原因电脑里装了多个Python比如一个官方版一个发行版pip装到了其中一个环境而解释器跑的是另一个。这是环境问题里最常见的一种“玄学”。解决不要用裸pip install统一用python3 -m pip install让pip和解释器严格对应。装完用同一个解释器验证python3 -m pip --version python3 -c import requests; print(requests.__version__)能打印版本号说明环境对应关系没问题。5.5 教程里的第三方库示例跑不通以为是自己的问题现象照教程写爬虫或数据处理代码报错信息指向库内部函数看起来完全不像语法问题。原因教程成稿时第三方库版本老多年过去API大量变更。比如老写法里的一些函数参数在新版库里已经被移除或改名。解决先把库升级到最新版再看官方示例对照。老教程的库代码只当思路参考不当标准答案。如果只是想跑通教程里的特定示例可以按教程标注的版本安装但入门阶段我建议锁思路、不锁版本。避坑的总体原则报错先看最后一行它才是真正的原因分不清版本差异时直接搜“某个写法 python3”比翻群聊记录快每改完一处亲手把整段代码敲一遍再运行不要每次只做复制粘贴。6. 读完不等于学会用一个猜数字小程序验证自己的入门成色把教程翻完很容易产生“我好像会了”的错觉。我一般会推荐每个跟着老PDF学完的新手不回头复习直接做一个微型程序命令行猜数字。这一个小东西覆盖了教程里最核心的语法点变量、输入输出、条件、循环、随机数、函数、类型转换、异常处理。import random def guess_game(): answer random.randint(1, 100) # 随机生成1到100的整数 count 0 while True: try: num int(input(猜一个1到100的数字: )) except ValueError: print(请输入数字) continue count 1 if num answer: print(太大了) elif num answer: print(太小了) else: print(f猜对了! 一共用了{count}次) break guess_game()这里的f-string是3.6才有的特性老教程没有。刻意用上它是因为这代表你已经开始使用比教程更新的写法这是一件比“跟完教程”更值得高兴的事。try/except在教程异常处理章节会出现但只有在这里真正用上才算学会了。运行通过之后对照教程目录自查变量和类型对应answer、count条件判断对应if/elif/else循环对应while True和break函数对应def guess_game()标准库对应import random。每一条都能指出来说明教程的主线知识你已经吸收。接着改三个版本练手把范围改成1到1000把总次数限制在5次以内超了提示失败统计每种提示出现了多少次。每改一处都会触发新的报错而那些报错就是真正学习发生的地方。我给每个想入门Python的朋友都推荐这招自己也一直保留这个习惯。希望帮到你。本文还有配套的精品资源点击获取