
第一次Python作业看起来是编程入门里最简单的一步但很多人恰恰就是被这一步劝退的。我见过不少同学课堂上听懂了、看示例也看懂了可回家一打开电脑就是跑不通。最气人的是报错信息不告诉你错在哪只甩出一屏英文搞得你连搜索都不知道该搜什么。这篇文章不打算讲高深的东西就把第一次作业这条路完整走一遍。从Python安装、编辑器配置到第一段可运行的Python代码再到那些最常见的报错排查办法。零基础的人照着做就行大概二十分钟把手边这关过了后面编程的路才会比较顺。1. 准备阶段Python安装与编辑器配置1.1 选版本与安装少走弯路的关键几步第一件事是装Python。这里最常见的问题不是“装不上”而是“装错版本”。很多新手直接去官网下载最新版结果跑作业的时候发现课程里用的第三方库还没适配新版本或者老师讲义里的语法在自己机器上跑不通。所以我的建议是如果老师或课程明确指定了版本那就严格按指定版本来如果没有指定装当前主流稳定版就好比如3.10或3.11别盲目追最新。选版本这件事背后有个很实际的逻辑第一次作业的代码量很小基本都是print、for、if这类基础语法新版本的特性和旧版本的区别你根本用不上。反而版本越新第三方库适配的风险越高。你真正需要的是一个“稳定、兼容、教程对得上”的环境而不是一个“看起来最新”的版本。安装步骤方面Windows用户去python.org/downloads下载64位安装包运行安装程序的时候注意安装向导第一页最下面有个Add Python to PATH这个勾选一定要勾上。很多人后面在终端里输入python提示“不是内部或外部命令”就是栽在这一步。勾选之后Python就会自动写进系统环境变量终端才能识别python命令。macOS用户建议下载官方安装包不要只用系统自带的/usr/bin/python那个版本往往偏老而且管理权限比较麻烦。Linux用户一般用包管理器安装Ubuntu/Debian可以执行sudo apt update sudo apt install python3装完之后打开终端或命令行输入python --version如果显示类似Python 3.11.5说明安装成功。如果显示的是python3而不是python也不用慌Linux系统里两条命令的差别只是别名问题后面统一用能识别的那条就行。注意安装路径尽量用默认别改到中文目录下面。Windows下Python解释器的路径一旦包含中文某些依赖外部工具的库会无辜报错排查起来很头疼。1.2 编辑器选型VSCode、IDLE、Jupyter与PyCharm第一次作业选编辑器原则就一条能快速运行起来比什么都重要。工具本身不决定你编程能力的高低折腾工具的时间却会消耗你学编程的热情。我见过四种常用选择各有各的适用场景工具适合的作业场景优点新手注意点IDLE零基础第一课Python自带不用额外安装写完按F5就能跑编辑体验一般错误提示不算友好VSCode通用脚本作业轻量、免费、插件丰富后续写项目也能用第一次要手动配置解释器PyCharm长期写大作业集成度极高调试方便界面和配置项太多新手容易迷路Jupyter Notebook数据分析/可视化作业代码分格运行结果直接显示在下方运行顺序容易乱建议从上往下执行我个人推荐第一次作业用VSCode理由很实在第一免费第二环境配置文件是显式的你能看清自己用的是哪个解释器第三等你第二个月开始写爬虫、做数据分析、写小脚本时还是同一个工具不用来回切换。如果只想最快跑起来那直接用IDLE连环境变量都不用管上课机房没网也能用。VSCode配Python环境的完整流程是装好Python之后打开VSCode在扩展商店搜索“Python”安装微软官方发布的那一款。然后按CtrlShiftP打开命令面板输入Python: Select Interpreter选择你刚安装的Python版本。这一步做完VSCode右下角状态栏会显示解释器路径表示它已经知道用哪个Python来运行代码了。有时候装完扩展还需要重启一下窗口不然解释器列表可能刷不出来。新建文件的时候文件名建议用homework1.py千万别用中文文件名。虽然能跑但一旦涉及文件路径、编码问题麻烦会成倍增加。用英文小写加数字命名是最省心的方案。1.3 三分钟环境验证确认已经能跑代码环境装完之后别急着写作业先做三件事把环境验证一遍。第一件终端执行python --version确认版本号能正常输出。第二件在终端输入python回车直接进入交互式环境输入print(hello)如果能输出hello说明Python解释器本身没问题。第三件在VSCode里新建一个.py文件写上print(Hello Python)点右上角的绿色运行按钮看下方终端输出。如果这三次都成功你的基础环境就是健康的后面写作业遇到问题的时候你也能确认问题出在代码而不是环境。第一次运行VSCode代码时可能会弹窗让你选择终端类型PowerShell或命令提示符都可以建议统一选PowerShell。之后运行代码时控制台会自动在下方打开你看到的输出就是真实运行结果。2. 核心语法第一次作业压箱底的四块内容2.1 变量与数据类型给数据起个名字第一份作业里的许多题目本质上都是在“操纵数据”。变量就是给数据贴一张标签方便你在代码里反复引用它。Python里变量不需要声明类型直接赋值就行name 小明 score 95 ratio score / 100 is_passed True这里name是字符串、score是整数、ratio是浮点数、is_passed是布尔值。Python是动态类型语言同一个变量可以重新赋不同类型的值这很灵活但也容易带来隐患。比如你一开始把score赋成整数后面不小心赋成了字符串运行计算时就会报类型错误。第一次作业里我建议你把常见的四种数据类型记牢字符串str用于文本整数int用于整数运算浮点数float用于小数运算布尔值bool用于条件判断。还有一个容易忽略的是list列表比如作业里让你输出2到100的所有质数通常就是放在列表里再打印。命名变量的规则也需要特别注意变量名不能以数字开头不能包含空格不能和Python关键字重名。看到别人代码里出现if 10这种报错多半就是命名踩了关键字。变量命名的另一个建议是用英文而不是中文拼音比如total_sum比zonghe好user_name比yonghuming好。这不是崇洋媚外而是英文命名在跨电脑、跨平台、查资料时都更通用。2.2 输入与输出程序与用户对话的窗口第一次作业十有八九会用到input()和print()。这两个函数就是你写的程序和用户交互的窗口。print()负责输出这个很好理解input()负责从键盘读取内容但有个非常经典的坑input()返回的数据类型永远是字符串。很多人写过这样的代码age input(请输入你的年龄) print(age 1)运行后直接报TypeError因为age是字符串字符串和整数不能通过加号拼接。正确做法是先做类型转换age int(input(请输入你的年龄)) print(age 1)所以遇到需要参与数学运算的输入一定要记得用int()或float()包一层。如果你想同时读取多个数字可以配合split()方法a, b input(请输入两个数用空格隔开).split() a int(a) b int(b) print(两数之和为, a b)这段代码里split()默认按空格切割字符串返回一个列表再用多变量赋值分别接住。第一次作业里如果要求输入三个数求最大值处理方式也是类似的先接收字符串再逐个转成数值。输出方面Python里字符串格式化有几种方式。最老式的用%占位后来有了format()方法现在最推荐的是f-string写法最直观name 王小明 score 88 print(f{name}的考试成绩是{score}分)大括号里可以直接放变量甚至可以放表达式比如{score 10}。f-string是Python 3.6以后才有的写法如果你的课程环境版本过老可能需要用format()替代。第一次作业建议直接在文件头部写上版本信息方便排查。2.3 条件判断、循环与函数作业题的主要构成第一份作业里的大头基本就是三件事条件判断、循环、函数。条件判断解决“在不同情况下走不同分支”的问题循环解决“重复做一件事”的问题函数解决“把一段逻辑封装起来重复调用”的问题。条件判断的基本语法是if 分数 60: print(及格) elif 分数 80: print(良好) else: print(加油)注意Python用缩进表示代码块if下面的行前面要有统一的缩进不然会报IndentationError。我第一次改作业时见过有人把缩进写成两个空格、四个空格混用结果程序莫名奇妙报错后来统一成四个空格才解决。这是Python和其他语言最明显的差异也是新手最容易栽跟头的地方。循环的两种主要方式for循环适合遍历可迭代对象while循环适合“条件满足就一直执行”的场景。第一次作业里求和、遍历范围这类题用for循环加range()比较顺手total 0 for i in range(1, 101): total i print(total)range(1, 101)生成从1到100的整数序列注意是左闭右开右边不包含101。这个细节也常考题目如果要求“1到100之间所有自然数之和”写range(1, 101)就对了写range(1, 100)会漏掉100。函数则是把一段有名字的逻辑封装起来。第一次作业里让你判断质数、求阶乘之类的题都会要求你定义一个函数def is_prime(n): if n 2: return False for j in range(2, int(n ** 0.5) 1): if n % j 0: return False return True函数的关键词是def函数名后面跟括号和参数列表函数体内缩进。return负责返回结果如果没有return函数默认返回None。第一次写函数的人常犯的错误是忘记return或者把return写在循环里提前退出稍不留神逻辑就不对了。3. 完整实操一份典型作业从写代码到提交3.1 一份典型的第一次作业是什么样以我见过的大多数Python入门课程为例第一次作业通常包含五类小任务基础输出、数学计算、条件判断、循环求和、简单函数。单个任务都很小但合在一起就是要逼你把最基本的语法走一遍。有这样一份非常典型的作业五个小任务分别是打印一句问候语。输入圆的半径计算面积。输入三个数输出最大值。计算1到100之间所有奇数的和。定义一个判断质数的函数并输出2到100之间的所有质数。这几个任务几乎没有超纲覆盖了第一节到第三节课的内容。每道题都有明确的考察点下面逐题过一遍完整的实现过程。3.2 五个小任务逐题实现与运行效果任务1考察基础输出。最简单但要展示出代码结构和输出print(你好这是我的第一次Python作业) print(学号20250001) print(姓名王小明)运行结果你好这是我的第一次Python作业 学号20250001 姓名王小明这个任务的核心不是内容本身而是让你体会“代码写在文件里运行后从终端输出”的过程。第一次写作业时你完全可以多输出几行把个人信息也打出来实战中不少老师也确实会在作业里要求输出姓名学号。任务2考察输入和类型转换r float(input(请输入圆的半径)) area 3.14159 * r * r print(f半径为{r}的圆面积是{area:.2f})运行示例请输入圆的半径5 半径为5.0的圆面积是78.54这里有两个细节需要解释。第一float()把输入字符串转成浮点数这样即使输入的是5.5也没问题。第二f{area:.2f}表示保留两位小数最终输出78.54而不是78.53975。格式化输出是作业里隐形的得分点会把数字缩成合理位数代码看起来更整洁。任务3考察条件判断a float(input(请输入第一个数)) b float(input(请输入第二个数)) c float(input(请输入第三个数)) if a b and a c: max_num a elif b a and b c: max_num b else: max_num c print(f三个数中的最大值是{max_num})运行示例请输入第一个数12 请输入第二个数7 请输入第三个数9 三个数中的最大值是12.0这道题如果换成“用列表和max()函数一行解决”其实也能做但第一次作业考察的就是你把条件判断写明白。elif的链式结构里如果几个条件互斥顺序其实影响不大但如果条件里有重叠区间就必须小心先后顺序。有个易错点如果三个数相等进入哪个分支答案取决于你用的是还是。用时相等情况下也能正常输出一个数。任务4考察循环和累积求和total 0 for i in range(1, 101): if i % 2 1: total i print(f1到100之间所有奇数的和是{total})运行结果1到100之间所有奇数的和是2500i % 2 1是判断奇数的方式也可以用i % 2 ! 0。这道题的另一层考察点是range()边界的把握。写range(1, 101)才能包含100写range(1, 100)就把100漏了虽然这道题只要奇数100本身不影响结果但如果题目改成求偶数和边界错了答案就错了。任务5考察函数和列表推导def is_prime(n): if n 2: return False for j in range(2, int(n ** 0.5) 1): if n % j 0: return False return True primes [n for n in range(2, 101) if is_prime(n)] print(2到100之间的质数) print(primes)运行结果2到100之间的质数 [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]判断质数理论上只需要除到n的平方根就够了不需要一直除到n-1。int(n ** 0.5)就是向下取整的平方根。这是第一次作业里不太容易想到的优化点也是我特别想提醒的地方循环的边界条件不是随便写的能少算就少算这是程序思维的起点。列表推导式[n for n in range(2, 101) if is_prime(n)]可能看着有点吓人实际意思就是“在2到100之间把满足is_prime(n)为真的n收集成列表”。3.3 提交作业前的五连查代码跑通之后提交之前还有几个容易被忽略的细节。第一个文件名必须是homework1.py这种英文命名千万别提交一个叫“作业一.py”的文件。第二个代码里的缩进要统一空格和Tab不能混用否则在老师机器上打开可能直接报错。第三个运行截图要截全既要有代码窗口也要有运行结果很多老师要求的就是“代码输出”的完整证据。第四个代码顶部可以加一段注释写上姓名、学号、作业编号这会让作业看起来更专业。第五个有条件的话把同一个.py文件在你自己的电脑和教室电脑上都运行一遍避免环境差异导致“在我这是对的在你那报错”。3.4 附赠小彩蛋用代码打印一颗爱心第一次作业如果做完还有余力我很推荐加一个小彩蛋既锻炼代码思维也能让作业变得更有趣。用Python打印一颗爱心字符画代码不算长但每一步都在锻炼你对循环和条件的理解for row in range(6): for col in range(7): if (row 0 and col % 3 ! 0) or (row 1 and col % 3 0) or (row - col 2) or (row col 8): print(*, end) else: print( , end) print()运行效果** ** ******* ******* * * * * *这段代码的原理是直接在字符网格上“按规则画点”每一行的哪些位置放星号哪些位置放空格是由行列坐标的条件判断决定的。print(*, end)不换行地连续输出外层print()负责换行。如果说前面五道题是基本功那么这个小彩蛋就是第一次作业的加分项能写出来至少说明你已经能把for循环、if条件、函数思想组合在一起用了。4. 常见问题与排查技巧实录4.1 环境类报错速查表第一次作业跑不通十有八九不是代码问题是环境问题。我把自己遇到过的、以及帮别人排查过的典型环境问题整理成了一张速查表报错/现象可能原因解决办法python 不是内部或外部命令安装时没勾选Add Python to PATH重新运行安装程序选择Modify并勾选PATH或在系统环境变量中手动添加Python目录和Scripts目录python能运行VSCode里运行却报ModuleNotFoundErrorVSCode选择了解释器A终端用的却是解释器B按CtrlShiftP重新执行Python: Select Interpreter确保运行按钮和终端用的是同一个解释器中文内容在控制台输出乱码Windows控制台默认编码GBK与Python输出的UTF-8不匹配在文件开头写入import sys; sys.stdout.reconfigure(encodingutf-8)或在代码顶部声明# -*- coding: utf-8 -*-双击homework1.py闪退代码运行完毕控制台自动关闭不要用双击方式运行脚本用VSCode或终端运行才看得到输出和报错环境类问题的排查诀窍是遇到奇怪现象先确认你实际用的是哪个Python。打开终端执行where pythonWindows或which pythonmacOS/Linux看路径是不是你装的那个。很多电脑里装了不止一个Python系统默认调用的那个和你在VSCode里选的那个不一样就会产生“终端能跑、编辑器不能跑”或相反的诡异情况。4.2 语法与逻辑错误速查表代码层面的报错其实是有规律可循的。掌握几个最常见报错的语义你就能少掉一半头发报错信息常见原因排查思路SyntaxError: invalid syntax中文标点比如中文括号、冒号混入代码看报错提示的行号逐字符检查那一行尤其是(、:、逗号是否用了中文输入法IndentationError: unexpected indent缩进不统一或多余缩进打开“显示空格”功能把该文件所有缩进统一成四个空格NameError: name xxx is not defined变量名拼写不一致搜一遍代码里所有出现该变量名的地方常见于print写成prnit、变量少打一个字母TypeError: can only concatenate str字符串和数字做了加法/拼接用str()或int()显式类型转换后再操作IndexError: list index out of range访问列表不存在的下标打印列表长度确认下标从0开始取最后一个元素用-1我最想强调的其实就是第一行报错信心的阅读。很多人看到报错习惯性往下翻其实最关键的信息往往就在最上面几行或者最后一行。报错信息会告诉你文件名、行号、错误类型。比如File homework1.py, line 8意思就是第8行有问题。先看行号再看错误类型最后看描述比把整屏英文发群里问人有效得多。4.3 让作业印象分更高的三个习惯关于第一次作业最后再聊三个能让你少走弯路的小习惯。第一个习惯是“每写一个小功能就运行一次”别等五个任务全写完才跑否则报错都不知道该从哪找。我见过一个同学一口气写完五道题运行时报了三次错到最后已经分不清哪个错误属于哪道题。这可是基础中的基础。及时运行错误是局部的排查范围就小很多。第二个习惯是“报错信息以前三行为重点”。调试时先读文件名和行号再读错误类型。如果你在VSCode里报错位置下方会有波浪线鼠标悬停能看到提示这比命令行更直观。新手最忌“看到报错就删掉重写”删掉之前一定要先读它因为报错里已经告诉了你线索。第三个习惯是“把作业当成小型项目来对待”。哪怕只有五道题也建议用一个main.py把所有代码组织好而不是五个零散文件。函数命名清晰、语句增加适当注释、输出结果用中文提示语包装一遍这几个细节组合在一起作业的完成度立刻就不一样了。代码不是写给机器看的更多是写给下学期、以及改你作业的人看的。我个人接手过不少第一份Python作业的辅导最后发现真正拉开差距的其实不是天赋而是流程环境干净、语法基础牢固、遇到报错不慌、提交前认真自查。能做到这四点你的第一次Python作业不仅能顺利交付还会顺带建立起一套往后写代码都能用的好习惯。第一次作业不是终点它只是你和Python这段关系正式开始的起点。