Python第一次作业完全指南:从环境搭建到实战通关
2026/9/19 4:21:31 网站建设 项目流程

还在为“Python 第一次作业”发愁?别急,这篇文章就是为你准备的。不管你是刚把Python装好、连“print”都还不太熟的新手,还是已经被老师布置的作业弄得一头雾水,这篇内容都能帮到你。我会从环境搭建、工具选择、基础语法一直讲到作业实战和报错排查,全是最实在的干货,照着做就能把第一次作业搞定。

1. 环境准备:先把Python和编辑器装明白

1.1 下载安装Python,这步千万别省

很多人第一次做作业,卡住的不是作业本身,而是环境根本没配好。我记得自己第一次写Python,照着教程敲了半天代码,结果连“Hello World”都跑不出来,后来才发现是Python没装好、环境变量没配对。这种坑,能避就避。

先说下载。官网是python.org,进去之后找到Downloads,它会自动识别你的操作系统,给出对应的安装包。Windows用户下载Windows installer(64位),macOS用户下载macOS 64-bit universal2 installer。千万别去什么“Python中文网”“Python下载站”之类的地方下载,那些站点经常捆绑各种乱七八糟的东西,甚至可能装上带病毒的假Python。认准官方域名,这是第一原则。

下载完之后,双击安装包。这里有一个关键的细节:安装界面底部有一个“Add Python to PATH”的复选框,一定要勾上。这个选项的作用是把Python添加到系统环境变量里,让你在命令行中直接输入python就能运行。很多教程会提醒勾选,但总有人忽略,结果后面命令提示符里敲“python”就报错。

安装路径建议用默认的就好,不要自作聪明改到中文目录下。Python本身对中文路径的支持虽然近些年有所改善,但为了避免一些莫名其妙的问题,还是老老实实用默认路径。

macOS用户安装时,一路Next(或者Continue)就行,装完之后可以在“启动台”里找到IDLE(Python自带的编辑器)。Linux用户一般系统自带Python,可以用python3 --version检查一下,如果没有就用apt install python3(Debian系)或者yum install python3(RedHat系)安装,这里不展开。

提示:安装完成后,打开命令提示符(Windows按Win + R,输入cmd回车),输入python --version,如果显示Python 3.x.x,说明安装成功。

1.2 编辑器选择:VsCode还是PyCharm

Python装好之后,还得有个写代码的“笔记本”。这里的选项很多:系统自带的IDLE、Sublime Text、Notepad++、VsCode、PyCharm等等。我的建议是:新手首选VsCode,理由很简单——免费、轻量、配置灵活,而且各种插件让写Python的体验非常舒服。

PyCharm当然也很好,尤其是专业版自带各种调试工具,但是它的启动速度慢、占用内存多,配置过程也稍显繁琐,对新手来说容易劝退。如果Non-creative追求开箱即用,那可以选Python自带IDLE。IDLE的好处是不用任何配置,安装完就能直接写,坏处是提示功能弱、界面简陋,写复杂一点的代码会很不舒服。VsCode则介于两者之间,界面清爽,插件生态丰富,配置好之后体验媲美专业IDE,值得花半小时折腾一下。

VsCode的配置流程也不复杂。先去code.visualstudio.com下载安装,然后在扩展商店(快捷键Ctrl+Shift+X)搜索“Python”,安装微软官方发布的那个扩展(发布者是Microsoft,认准它)。装完之后,用快捷键Ctrl+Shift+P打开命令面板,输入“Python: Select Interpreter”,选择你刚安装的Python解释器,就完成了。

测一下是否配置成功:在VsCode里新建一个文件,命名为test.py,输入print("Hello, Python"),然后右键选择“在终端中运行Python文件”,如果终端里输出了“Hello, Python”,说明整个环境链路已经通了,可以开始写作业了。

1.3 常见环境问题速查

问题1:安装完成后,在cmd中输入python提示“python was not found; run without arguments to install from the Microsoft Store”。

这个错误很常见,原因是系统没有找到Python的安装路径。解决办法就是重新安装Python,安装时确保勾选“Add Python to PATH”。如果已经勾选但还是报错,那就看看环境变量——右键“此电脑” → 属性 → 高级系统设置 → 环境变量,在“Path”里看看有没有C:\Users\你的用户名\AppData\Local\Programs\Python\Python311\和对应的Scripts目录,如果没有就手动添加,然后重启cmd。

问题2:输入python3显示“不是内部或外部命令”。

这个主要是Windows用户的问题。Windows系统下,命令一般是python而不是python3(python3是macOS/Linux的常用叫法)。如果你在cmd里习惯性敲python3,就会提示找不到。解决办法是直接用python命令,或者把脚本文件用“python 文件名.py”的方式运行。

问题3:VsCode终端里运行Python文件提示“Python was not found”。

这种情况一般是VsCode没有识别到Python解释器。重新执行一遍“Python: Select Interpreter”操作,或者检查一下VsCode的终端是不是用的默认PowerShell,有时候切换成CMD模式就能解决。

2. 第一次作业前必会的10个基础语法

2.1 变量与类型:从赋值开始

Python里的变量不需要声明类型,直接赋值就能用。比如a = 10,这个a就是整数类型;b = "hello"b就是字符串类型。这比C语言、Java简单了很多,上手几乎没有门槛。

但要留意的是,Python虽然是动态类型,也不意味着可以随意混淆类型。两个整数相加得到整数,两个字符串相加是拼接,整数和字符串相加就会报错。比如:

a = 10 b = "20" print(a + b) # TypeError: unsupported operand type(s) for +: 'int' and 'str'

解决的办法是类型转换——把字符串转为整数用int(b),把整数转为字符串用str(a)。所以上面的代码改成print(a + int(b))或者print(str(a) + b)就能正常运行。这个知识点在作业里用得非常多,尤其是从用户输入里读取数据时,后面会专门讲。

2.2 输入输出:print与input

print()是输出函数,基本用法是print(内容),内容可以是字符串、数字、变量,也可以是多个值——用逗号隔开就行,Python会自动用空格分隔它们。

print("年龄是", 18) # 输出:年龄是 18 print("结果 =", 3 + 5) # 输出:结果 = 8

input()是输入函数,它会把用户从键盘输入的内容作为字符串返回。这一点非常重要,很多新手写程序时,需要用户输入数字,然后直接拿去计算,结果报错,原因就是input()返回的是字符串,必须先转成数字才能参与数学运算。

age_str = input("请输入年龄:") # 返回的是字符串 age = int(age_str) # 转为整数 print("明年你", age + 1, "岁")

2.3 条件判断:if-elif-else

条件判断是几乎所有编程作业的必考点了。Python的写法很简洁,语法结构如下:

if 条件1: # 条件1成立时执行的代码 elif 条件2: # 条件2成立时执行的代码 else: # 以上条件都不成立时执行的代码

需要注意的有两点:一是条件后面要加冒号:,二是代码块必须缩进(一般用4个空格)。Python用缩进代替了其他语言的花括号,所以缩进错了程序就跑不了,或者逻辑就错了。这个设计对新手来说一开始不太适应,但适应了之后反而觉得挺好,代码结构一眼就能看出来。

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

2.4 循环结构:for与while

循环在作业里出现的频率也很高。for循环常用于遍历序列(列表、字符串、range范围等),while循环适用于不知道具体循环次数、只知道循环条件的场景。

# 打印1到5 for i in range(1, 6): print(i)

range(1, 6)生成从1到5的整数序列,注意是左闭右开——包含起始值1,不包含结束值6。这是新手最容易搞混的地方。比如要循环5次,一般写range(5),生成的是0, 1, 2, 3, 4

# while循环:倒计时 count = 5 while count > 0: print(count) count -= 1

2.5 列表与字典:作业里的数据容器

列表用方括号[]表示,可以存放各种类型的数据。取元素从索引0开始,list[0]是第一个元素,list[-1]是最后一个元素。这个负数索引的用法是Python的特色,很方便。

fruits = ["苹果", "香蕉", "橙子"] print(fruits[0]) # 苹果 print(fruits[-1]) # 橙子 fruits.append("梨") # 添加元素

字典用花括号{}表示,存储“键值对”。它是一种映射关系,就像查字典一样,通过“键”来找到“值”。

student = {"name": "小明", "age": 18, "score": 95} print(student["name"]) # 小明 student["age"] = 19 # 修改值

2.6 函数基本写法

第一次作业很可能要求你写函数,比如def 函数名(参数):这样的结构。函数的作用是把一段重复使用的代码封装起来,调用时传入不同参数,得到不同结果。

def add(a, b): return a + b result = add(3, 5) print(result) # 8

注意,写函数时,函数内部的计算结果需要通过return返回给调用方。如果只写print(a + b)而不return,那函数执行完后结果就“丢”了,外部拿不到这个值。这个“return与print的区别”也是新手常见困惑点。

2.7 注释与文档字符串

写作业和写代码的时候,一定要记得加注释。Python的注释用井号#开头,也可以在多行字符串里写注释。注释的作用一是帮助自己回忆,二是让老师(或同事)看懂你的思路,是代码的一部分。

# 计算圆的面积 radius = 10 # 使用公式:面积 = π * r² area = 3.14159 * radius ** 2 print(area)

2.8 异常处理:try-except

第一次作业可能不会用异常处理,但提前知道绝对不吃亏。当用户输入的格式不对(比如输入了字母而不是数字),程序会直接崩溃。为了避免这种情况,可以用try-except捕获异常。

try: age = int(input("请输入年龄:")) print("明年", age + 1) except ValueError: print("输入格式错误,请输入数字")

这样一来,即使输错内容,程序也不会崩溃,而是给出友好提示。这个技巧在后续的课程项目中会频繁用到。

2.9 字符串的常用方法

字符串在Python里是处理最频繁的数据类型之一。以下方法建议记牢:

  • len(s):获取字符串长度
  • s.strip():去掉首尾空格
  • s.lower() / s.upper():大小写转换
  • s.split(","):按指定字符分割字符串为列表
  • s.replace("a", "b"):替换子串
  • s.isdigit():判断字符串是否全是数字
s = " Python 第一次作业 " print(len(s)) # 19(包括空格) print(s.strip()) # Python 第一次作业 print(s.split(" ")) # ['', 'Python', '第一次作业', ''] print(s.isdigit()) # False

2.10 运算符优先级与常见写法

Python的运算符优先级和数学中的一致:先乘除、后加减,括号优先。**表示幂运算,//表示整除(向下取整),%表示取余数。

print(7 // 2) # 3 print(7 % 2) # 1 print(2 ** 3) # 8

判断奇偶就用n % 2是否等于0,求末位数字就用n % 10,求十位数字就用(n // 10) % 10。这些技巧在做数字类题目时特别有用,后面作业实战会用到。

3. 作业实战:一道题一道题地拆解

3.1 经典题一:从1加到n

题目要求:输入一个正整数n,计算从1加到n的总和,并输出结果。

这道题考察的是循环和累加。思路是:设置一个变量total = 0,然后用for循环把每个数加到total上。

n = int(input("请输入一个正整数:")) total = 0 for i in range(1, n + 1): total += i print("1到", n, "的和是", total)

运行效果:

请输入一个正整数:10 1到 10 的和是 55

如果你想炫技,还可以用等差数列求和公式一步到位:total = n * (n + 1) // 2。但注意,作业的目的通常是让你练习循环,所以老老实实写循环更稳妥,公式可以作为验证结果的方法。

3.2 经典题二:判断奇偶性

题目要求:输入一个整数,判断它是奇数还是偶数。

通过n % 2的结果来判断是最高效的方法。n % 2 == 0说明是偶数,否则是奇数。下面是完整代码:

num = int(input("请输入一个整数:")) if num % 2 == 0: print(num, "是偶数") else: print(num, "是奇数")

这个题目虽然简单,但它包含的知识点是条件判断和取余运算的结合。同样的思路可以延伸到判断一个数能否被3整除、判断闰年(能被4整除但不能被100整除,或者能被400整除)等。

3.3 经典题三:求最大公约数

题目要求:输入两个正整数,输出它们的最大公约数。

这道题有两个思路。第一个思路是暴力枚举——从较小的那个数往下找,找到第一个能同时整除两个数的数就是最大公约数:

a = int(input("请输入第一个数:")) b = int(input("请输入第二个数:")) small = a if a < b else b # 找到较小的数 for i in range(small, 0, -1): # 从大到小循环 if a % i == 0 and b % i == 0: print("最大公约数是", i) break

第二个思路是更优雅的“辗转相除法”(欧几里得算法):用较大数除以较小数,然后用余数替换较大数,反复进行,直到余数为0,最后的除数就是最大公约数。

a = int(input("请输入第一个数:")) b = int(input("请输入第二个数:")) x, y = a, b while y != 0: x, y = y, x % y print(a, "和", b, "的最大公约数是", x)

这里用到了多变量同时赋值的语法x, y = y, x % y,本质上相当于temp = x % y; x = y; y = temp。这样的写法更Pythonic,但初学者如果对赋值逻辑不熟,可以先写完整版,再考虑简化写法。

3.4 经典题四:九九乘法表

题目要求:输出9行九九乘法表,格式为1x1=1

这道题是嵌套循环的经典练习。外层循环控制行数(1到9),内层循环控制列数(1到当前行数)。

for i in range(1, 10): for j in range(1, i + 1): print(f"{j}x{i}={i * j}", end="\t") print() # 换行

f"{j}x{i}={i * j}"是f-string格式化写法,花括号里的内容会被变量的值替换。end="\t"表示每个式子之间用制表符分隔而不是换行,这样排列出来对齐效果更好。

输出效果:

1x1=1 1x2=2 2x2=4 1x3=3 2x3=6 3x3=9 1x4=4 2x4=8 3x4=12 4x4=16

这道题的关键点在于内层循环的range(1, i + 1)——它让每一行只输出到与行号相等的列数,这就是乘法表是三角形而非方阵的原因。

3.5 经典题五:判断素数

题目要求:输入一个大于1的整数,判断它是否为素数。

素数的定义是只能被1和它本身整除的数。最简单的思路是遍历从2到n-1的所有数,看有没有能整除n的。如果找到了,n就不是素数;否则就是素数。

n = int(input("请输入一个大于1的整数:")) is_prime = True for i in range(2, n): # 从2到n-1 if n % i == 0: is_prime = False break if is_prime: print(n, "是素数") else: print(n, "不是素数")

这里用了一个is_prime布尔变量作为“旗帜”,循环中一旦发现整除就改为False并退出循环。这个“旗帜变量”的思路在很多编程题目中都会用到,值得熟练掌握。

优化版本:循环范围可以缩小到range(2, int(n ** 0.5) + 1),因为如果n有大于平方根的因子,那必然也有小于平方根的对应因子,所以只需检查到平方根即可。这个优化对大数据量的情况很有意义。

3.6 作业提交前的自检清单

提交作业前,建议逐项对照以下清单检查:

  1. 代码能正常运行,没有任何错误
  2. 输入边界值(如0、负数、最大允许值)时,程序不会崩溃
  3. 代码中有适当的注释和清晰的变量命名
  4. 输出格式与题目要求完全一致(包括空格、换行、大小写)
  5. 没有使用未学过的、超出作业范围的复杂技巧(除非你解释清楚)
  6. 文件名规范(例如homework1.py),不要用“新建文档123”这样的名字

4. 常见报错排查:这些坑我全替你踩过

4.1 ModuleNotFoundError 与import的坑

有一类报错非常常见:ModuleNotFoundError: No module named 'xxx'。比如作业中要用到requests库或cv2(OpenCV)库,直接import cv2就报错了。

原因很简单:第三方库没有安装。解决办法是用pip安装,命令格式是pip install 库名。在命令提示符或VsCode终端中运行:

pip install cv2 pip install requests pip install numpy

但如果用的是“python -m pip”这种方式,或者系统中有多个Python版本(比如装了Anaconda又装了官方版),pip可能装到了错误的环境。Windows下可以尝试:

python -m pip install cv2

但这里还要注意一个细节:pip install cv2并不一定能正确安装OpenCV。正确做法是pip install opencv-python,安装后代码里才可以用import cv2。这个“库名”和“导入名”不一致的情况,对于新手来说就是一个大坑。类似的还有PIL要装pillow库、np其实是numpy库。

4.2 SyntaxError:语法错误

SyntaxError: invalid syntax是最常见的报错,通常意味着代码中有拼写错误、括号没配对、冒号漏写、字符串引号没闭合等。解决方案是从报错位置往前看几行,一般就能找到问题。

比如这段代码:

if x > 10 print("x大于10")

缺少冒号,Python会报SyntaxError: invalid syntax,并把光标指向if这一行。加上冒号就能解决。这里提醒一句:Python的语法错误通常报在“发现问题的那一行”,但实际错误位置可能在前一行。

4.3 NameError:变量未定义

NameError: name 'xxx' is not defined的意思是代码里用了一个还没定义的变量。常见原因有:

  1. 变量名拼写错误,比如定义了total,使用的时候写成了totle
  2. 使用了变量,但在前面的分支中该变量没有被赋值
  3. 把变量名和字符串搞混了,比如写了print(name)name只是一个字符串,应该写成print("name")

这个名字错误算是新手最常犯的错误之一。排查时先检查变量名的拼写是否前后一致,再检查变量是否在所有路径上都被赋值了。

4.4 IndentationError:缩进错误

IndentationError: unexpected indent说明代码的缩进出了问题——多加了空格或者缩进不统一。Python对缩进极度敏感,同一个代码块里的缩进必须完全一致。

最常见的场景是:用VsCode写代码时,默认用4个空格缩进;但如果你从网页上复制代码,网页里的缩进可能是tab字符,混在一起就会报错。解决办法是在VsCode里全选代码,然后Shift+Tab(或Tab)统一缩进;或者在设置里把"editor.insertSpaces"设为true。

4.5 TypeError:类型错误

TypeError: unsupported operand type(s) for +: 'int' and 'str'就是典型的类型错误。正如前面讲的,整数和字符串不能直接相加。排查思路是:检查参与运算的变量的类型,必要时使用type()函数打印类型确认:

x = input("请输入数字:") print(type(x)) # <class 'str'>

还可以用isinstance(x, int)来检查类型。知道了类型之后,用int()str()做出相应的转换就行。

4.6 IndexError:索引越界

IndexError: list index out of range表示你访问的元素索引超出了列表的范围。比如一个列表只有3个元素,你取了list[3],就报错了(因为索引从0开始,最大只能取到list[2])。

这种错误在遍历列表时尤其容易出现。比如你用for i in range(len(list))的时候,如果循环体内恰好又修改了列表的长度,就会出现问题。建议用for item in list这种遍历方式,减少索引出错的风险。

4.7 程序运行后什么都没有输出

这种情况一般是代码逻辑没进入输出语句。可能原因有:

  • if条件判断错误,导致分支没进去
  • 循环条件本身就不成立(比如while条件一开始就是False
  • 代码里没有print语句
  • print语句写在函数内部,而函数从未被调用

排查办法:在关键位置加临时print调试语句,打印中间变量的值。这是一种最简单也最有效的调试手段,新手阶段完全够用。

4.8 中英文标点混用导致的错误

写代码的时候,所有的标点符号都必须是英文输入法下的标点。比如字符串引号、逗号、括号,用中文的“”或者“,”都会被Python识别为非法字符。

print(“Hello”) # 错误的引号 print("Hello") # 正确的引号

这种错误的报错往往是SyntaxError: invalid character,或者在字符串没有被正确终止时,整个代码被解析成一团乱麻。有时候肉眼很难察觉,可以把光标移到报错位置附近,用VS Code高亮功能检查。有一个老办法是:检查报错行号附近是否有中文标点。

5. 让第一次作业出彩的三个技巧

5.1 用面向对象改写作业代码

如果你的作业要求只是简单地写几个函数,你可以试着用类(Class)的方式组织代码。这种写法虽然稍微复杂一点,但能展现出你对代码结构的理解。

class Calculator: def __init__(self): self.total = 0 def sum_to_n(self, n): self.total = sum(range(1, n + 1)) return self.total def is_prime(self, n): if n < 2: return False for i in range(2, int(n ** 0.5) + 1): if n % i == 0: return False return True calc = Calculator() print(calc.sum_to_n(100)) # 5050 print(calc.is_prime(17)) # True

关键点是:在类的__init__方法里初始化属性,用self.xxx来表示实例变量。如果你在作业里用了这个写法,建议在代码注释里说明你参考了什么资料、为什么要这样设计,这样老师能看懂你的思路,也会觉得你有学习主动性。

5.2 用argparse给作业加上命令行交互

一般的作业是input()输入,但如果你有兴趣更进一步,可以学习argparse模块,让你的程序支持命令行参数输入。例如:

import argparse parser = argparse.ArgumentParser(description="计算1到n的和") parser.add_argument("n", type=int, help="正整数") args = parser.parse_args() total = sum(range(1, args.n + 1)) print("1到", args.n, "的和是", total)

运行方式变为:

python sum.py 10

这种交互方式在处理批量测试、自动化验证时非常方便。如果你是计算机专业的学生,早点接触argparse对后续学习也有帮助。

5.3 用assert做代码自检

在作业代码里加几个assert断言,可以自动验证函数是否正确:

def add(a, b): return a + b assert add(1, 2) == 3 assert add(-1, 1) == 0 assert add(0, 0) == 0 print("所有测试通过")

assert后面的条件如果为True,程序继续运行;如果为False,程序抛出异常。这样你在提交作业前运行一次,就知道代码逻辑还有没有问题了。这算是我个人很喜欢的一个小技巧,它把“自己验证”变成了程序自动验证,也让老师看到你有测试意识。

6. 写在最后:踩过这些坑才叫学过Python

回头想想,第一次写Python作业的时候,我光是环境就折腾了一个晚上。明明代码照着抄的,结果就是跑不起来。后来才明白,与其着急写代码,不如先把环境理解了、工具用熟了、基础语法过一遍。磨刀不误砍柴工。

再分享一个小技巧:写作业的时候,不要一口气把整段代码写完再运行,最好每写一小段就运行一次,确认这一小段没问题再继续往下写。这样可以把“找bug”的范围控制得非常小,出错了也一眼就能看出来。如果是一次性写了几十行再运行,报错之后排查起来就非常痛苦。

第一份作业的意义不在于题目有多难,而在于让你完整体验一遍“分析问题 → 设计思路 → 编写代码 → 调试运行 → 提交成果”的过程。这个过程走通之后,后面再学函数、文件操作、类、爬虫、数据分析这些内容,都会顺很多。如果你做完了第一个作业,一定记得把代码留好,过一个月再回来看,你会惊讶于自己居然写过这么“稚嫩”的代码,也会更清楚地看到自己的进步。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询