小白自学记录1零基础开始学Python的第一周我到底折腾了啥先说清楚这个系列是干嘛的。我不是什么大牛也没报过培训班就是一个纯外行白天有本职工作晚上抽空自学Python。这个“小白自学记录”系列就是把我的真实学习过程、踩过的坑、用过的资源、一次次想放弃又捡起来的瞬间原原本本记录下来。这一篇是第1篇覆盖我从下载安装一直到写完第一个能跑的小程序的完整过程。如果你是零基础正犹豫要不要开始学、不知道从哪里下手那这篇应该能给你一个特别真实、不加滤镜的参考。这个系列适合谁我也直说适合和我一样没有编程基础、全靠业余时间自学的人。如果你有计算机背景那这些内容对你来说可能太基础了但如果你是那种“连文件后缀名都要百度”的新手那我踩过的坑你大概率也会踩一遍。我尽量把每一步都写得很细细到哪怕你完全没接触过程序也能照着操作。为什么选Python以及自学前我做的准备1.1 先想清楚学Python到底是为了啥我做的最重要的一件事不是安装软件而是问了自己一个问题我为什么要学Python这个问题看似废话但真的能过滤掉一大批中途放弃的人。我的答案是工作中经常要处理重复性的改表格、整理文件偶尔还要分析一批批的活动数据每次靠手工复制粘贴都干到怀疑人生。听人说Python能自动处理这些我就想试试能不能用脚本把这件事干了。目标非常具体甚至有点功利但正是这个功利的目标让我在第一周特别容易坚持下去因为每学一个语法我都知道它之后能用在哪里。你要是也想学建议你先别急着下载软件先花半小时想清楚自己的目标。不用特别宏大哪怕只是想“以后找工作多一个技能”都行。但必须有个具体一点的理由否则学到类和对象那部分真的会感觉自己是在背天书。1.2 第一反应是看视频课但我很快调整了策略我一开始的计划特别天真先逛B站看免费视频课然后跟着敲代码觉得这样应该就够了。但在网上翻了几个小时后发现自己掉进了典型的“收藏夹吃灰”陷阱——视频收藏了一堆真正看完的不超过两集而且大多数视频要么太老还在用Python 2要么语速太慢要么老师讲到一半自己都跑偏了。我后来用的方案是这样的以一本书作为主线教材B站视频只用来解决具体问题。书我选的是《Python编程从入门到实践》选它的原因是口碑稳、案例多、知识点编排合理而且它配套的练习真的很多足够我这种小白用来巩固。视频则当作“字典”用哪个知识点看不懂了就搜对应标题的视频看10分钟看懂就关掉。这个方法比一味刷视频高效得多因为视频是被动接收容易走神书上的代码需要自己主动敲出来记忆深刻得多。1.3 我的工具清单别问先按这个装刚起步的人最容易被“工具”劝退。我一开始连什么叫“解释器”、什么叫“IDE”都分不清纯粹是安装软件的时候反复百度才搞明白的。为了帮你绕开我走过的弯路直接给你一套能照抄的配置Python 3.12.x目前比较新的稳定版别用2.x那个已经过时了PyCharm Community Edition社区版免费对新手最友好一个用来记笔记的工具我用的是Typora纯Markdown笔记清爽一个笔记仓库目录专门用来存放每天的练习代码这套组合非常干净Python解释器负责“运行代码”PyCharm负责“写代码”笔记软件负责“记录知识点”。这三样就是我第一周的全部装备。至于VSCode、Jupyter Notebook这些等你适应了基础语法再考虑换也不迟没必要一开始就在工具上研究半天。环境搭建与第一个程序从安装到Hello World2.1 安装Python时最容易翻车的一个选项下载地址我就不放了直接搜“Python官网”就能找到。这里有一个必须反复强调的点在Windows上安装到第一步的时候一定要勾选最下面的那个复选框——“Add Python to PATH”。我第一遍安装就是没勾后来在命令行里输入python怎么都提示“不是内部或外部命令”还以为是电脑出了问题。其实这个选项的意思是让系统把Python的安装路径加到系统环境变量里这样你在任意目录下打开命令行输入python都能直接启动解释器。如果没有勾选系统根本不知道python这个命令去哪里找。万一你已经装完了才发现没勾选也没关系有补救办法打开Windows设置搜索“环境变量”找到用户变量中的Path把Python的安装路径和Scripts子目录路径手动添加进去然后重启命令行窗口。不过我最诚恳的建议还是重装一遍勾选好那个框省事又省心。2.2 PyCharm配置新建项目时记得“新建环境”PyCharm的安装没有啥坑社区版一路Next就行。但新建项目的时候不要无脑点确定重点看“New environment using”这个选项PyCharm默认会帮你创建一个新的虚拟环境Virtualenv。啥是虚拟环境我用大白话解释一下你可以理解成给每个项目单独开一间屋子这间屋子里的Python基础文件是好几个项目共享的但你在屋里额外安装的第三方库互不干扰。这样等项目多了之后就不会出现A项目需要Django 3.0、B项目却只能跑Django 2.2这种打得头破血流的情况。新建项目时的配置建议Location选择你专门放代码的目录Environment选VirtualenvPython版本选你刚安装的那个版本。剩下的全都默认就行。2.3 人生第一个程序Hello World的三种写法安装完成后我干的第一件事就是在PyCharm里新建了一个Python文件命名为hello.py然后敲下了那行经典的代码print(Hello, World!)点击右键选择Run下方窗口输出Hello, World!的那一刻我整个人还挺兴奋的。虽然这个程序简单到不行但它代表了一件事我的学习链路已经彻底跑通了。写代码、运行、看到结果这个过程顺畅无阻后面不管学什么都是在往这条链路上添加内容。我也顺手试了另外两种用法帮你提前规避一下后续的困惑第一种在命令行里交互式运行。打开命令行输入python进入交互模式直接输入print(Hello)回车就能看到结果。这种方式适合快速验证一小段逻辑。第二种在命令行里直接运行脚本文件输入python hello.py也能跑。第一次玩这些命令的时候我把当前目录都搞不清还是用cd命令一步步切过去的。这些都是正常的别怕多用几次就熟了。第一周我到底学了些啥变量、数据类型、条件判断3.1 变量与赋值理解“盒子”而不是“数学课的未知数”第一次接触变量这个概念我最大的误区就是拿数学课的知识往上套。Python里的变量更准确的比喻是一个“贴着标签的盒子”。你写这句代码score 100意思就是把一个值为100的东西放进了贴有score标签的盒子里。之后你用score这个标签就等于在用盒子里的100。再比如说name 张三 age 25name盒子里装的是字符串age盒子里装的是整数。Python是一个动态类型语言也就是说你不需要事先声明这个盒子能装什么类型的数据直接往里塞就行它自己能判断。这个特性给新手带来了极大的便利但同时也埋了一个坑下面的数据类型部分我会讲到。3.2 数据类型别让“1 1”变成了“1 1”数据类型这个概念是我第一周踩雷最密集的地方。Python里最常见的基础数据类型有四种字符串str、整数int、浮点数float、布尔值bool。字符串必须用引号包住比如abc整数和浮点数不用引号布尔值只有True和False两兄弟。我翻车的一个例子是这样的。我写了一个看似毫无问题的代码a 10 b 20 print(a b)结果报错TypeError: can only concatenate str (not int) to str。报错的信息翻译过来就是字符串只能和字符串拼接不能直接和整数相加。此时a是字符串“10”b是整数20Python根本不知道你想干嘛。解决办法是用int()或者str()做类型转换a 10 b 20 print(int(a) b) # 结果是30 print(a str(b)) # 结果是1020这件事给我的启发是变量本身不知道自己装的是什么类型需要你心里有一杆秤。写代码前先默念一遍“这个变量现在是字符串还是数字”能省下好多报错的烦心事。3.3 条件判断缩进比我想象得重要一百倍学会变量和数据类型之后我学的是条件判断也就是if语句。这个语法本身特别好懂age 18 if age 18: print(你已经成年了) else: print(你还未成年)但真正让我抓狂的是Python对缩进极度敏感。在其他很多语言里代码块是用花括号{}包裹的缩进只是为了好看但在Python里缩进就是语法本身同一个代码块里的每行代码前面的空格数必须一致否则直接报IndentationError。我第一次写多行if语句的时候就是没有统一用四个空格缩进结果报错的一瞬间完全蒙了。后来养成一个习惯只要按下回车要写代码块内部的内容PyCharm通常会自动帮你缩进但如果你手动复制粘贴一不小心就会混进不齐的空格。遇到这种报错最直接的办法就是删掉那段代码重新手敲一遍并设置PyCharm显示行号方便定位到具体是哪一行出了问题。3.4 循环for和while的差别一句话就能讲清循环这部分我学得比较快因为它和我们平时的习惯特别贴近。for循环适合“我知道要循环多少次”的场景比如把0到9这10个数挨个打一遍for i in range(10): print(i)while循环适合“只要条件成立就一直做下去”的场景比如写一个猜数字的小游戏用户猜不对就一直问answer 42 guess 0 while guess ! answer: guess int(input(猜一个数字)) print(猜对了)这里要注意的是while循环如果条件永远为真就会变成死循环程序会一直卡住。所以运行起来没反应的时候先想想是不是死循环然后CtrlC强制中断就行别着急重启电脑。踩坑记录新手最容易遇到的几个报错与排查思路4.1 环境变量没配好命令行不认python命令这个问题我已经在前面说过了但这里还是要放进踩坑清单里再提醒一次。它的典型症状是命令行输入python后提示“python 不是内部或外部命令也不是可运行的程序或批处理文件”。这个和Python代码本身没关系纯粹是系统PATH配置的问题。最简单的方法就是重装并勾选Add Python to PATH不想重装的话手动加系统环境变量也行。加完之后记得重新打开命令行环境变量不会自动刷新。4.2 错误提示里出现非ASCII字符多半是中英文标点惹的祸我有一回写代码一直报SyntaxError但怎么看都觉得逻辑没错。后来盯了半天才发现我用来包裹字符串的引号是中文输入法下的引号“”而不是英文引号。在Python世界里所有的标点符号都必须是英文半角状态下的括号、引号、冒号、逗号全部都是。这个坑新手特别容易踩尤其是在中文输入法和英文输入法之间切换的时候。解决方法是写代码的时候直接切换成英文输入法如果系统装了多个输入法可以设置只在某个应用里默认英文。现在很多编辑器也有语法高亮中英文引号的颜色不一样扫一眼就能发现异常。4.3 IndentationError缩进相关的一切错误IndentationError还有一个变种叫TabError意思是混用了Tab键和空格键来缩进。PyCharm默认会帮你把Tab键自动替换成4个空格所以在它里面写代码一般不会遇到这个问题。但我有段时间用系统自带的记事本改代码就踩到了Tab和空格混用的坑。排查思路也很简单在PyCharm底部开启“显示空格”功能把不可见字符显示出来就能一眼看出哪里是Tab、哪里是空格。再次强调Python社区默认的缩进方式是四个空格不是Tab能用空格就永远别碰Tab键。4.4 记不住语法怎么办别怕这太正常了学习第一周我最焦虑的不是报错而是发现自己第二天就忘掉了头一天学的东西。比如input()这个函数的用法我第三天上网搜了三次。后来我想通了一件事语法本身不值得“背”值得记住的是“有什么工具、能解决什么问题”这个地图。具体怎么写卡壳了就去查文档、翻博客查多了自然就记住了没有人能一次记住所有东西。真正有用的办法是当天学完的知识点晚上拿一个真实的题目练一遍。比如学了循环就去写一个“打印九九乘法表”的小程序学了条件判断就去写一个“根据分数判断等级”的小脚本。代码这个东西光看是真的学不会的只有亲手敲出来踩过几个报错才能真正变成自己的。学习复盘与时间安排一周学多少才算正常5.1 我的实际时间分配与节奏很多人关心的一个问题是我一天到底学多久一周学到哪里算正常我给你展示我的真实数据时间段学习内容投入时间第1天安装环境、跑通Hello World2小时第2天变量、数据类型1.5小时第3天条件判断与缩进2小时第4天for循环与while循环2小时第5天列表和字典基础操作2.5小时第6天综合练习猜数字小游戏2小时第7天复习、整理笔记1小时我平均每天投入1.5到2.5小时不等晚上下班到家后学周末排得更多。这个节奏不快不慢关键是每天都抽出时间摸一下代码保持手感。哪怕只是复习了10分钟之前的内容也比隔三天再爆发式学8个小时要有效十倍。5.2 如何防止“收藏夹吃灰”和“教程囤积症”我在第一周下载了好几个PDF教程收藏了几十个视频链接结果真正看完的不到十分之一。后来我给自己立了一条规矩每收藏一个教程就必须先看一节每下载一份PDF就必须当天摘抄一个知识点到自己的笔记里。这套方法很土但对治疗“囤积症”真的有效。另外一个有效的策略是每天在笔记里写一小段“今日收获”哪怕只有三行。这样一周下来你会惊讶地发现自己其实学了挺多东西。更重要的是这份笔记是你自己的不是博主的知识点搬运复习的时候特别有用。5.3 下一步我打算学点什么第一周结束后我已经可以写一些很基础的小脚本了比如自动算BMI、根据成绩输出评语甚至做了一个特别简陋的猜数字游戏。第二周的目标是深入学习函数和模块尝试把这几天写的代码封装成一个个函数减少重复代码顺便开始接触文件读写这样才可能实现最开始想做的“自动处理表格数据”的愿望。现在再回头看第一周其实没学到多么深的东西但它最重要的意义是验证了一件事我这种人是真的可以靠自学学会一门编程语言的。学编程这件事最容易被高估的是难度最容易被低估的是每天一点点积累的力量。你不需要第一天就搞懂所有概念也不需要急着写什么高端项目只要跟着走把环境搭好把最基础的语法敲熟你就算正式迈过了那道很多人没有迈过去的门槛。我的经验是别想太多就开始动手敲代码就对了。
