Python 创意编程 作业清单 ← 三科总览 配套课文 Word 版 ↓ 打印 / 存 PDF

Python 创意编程 作业练习清单

从 print 和 turtle 起步,一路走到函数、类与对象、GUI 和办公自动化。

120道作业
68课全覆盖
45基础 ★
61进阶 ★★
14挑战 ★★★

快速跳转

  1. 第1章 我的新朋友,它叫Python
  2. 第2章 召唤画图的小海龟
  3. 第3章 神奇的变量
  4. 第4章 如果,那么大学问
  5. 第5章 循环是种神奇的力量
  6. 第6章 兄弟齐聚一堂
  7. 第7章 函数拥有巨大的能力
  8. 第8章 类与对象的奥秘
  9. 第9章 注释帮助我们理解
  10. 第10章 警报,警报,发现异常
  11. 第11章 汇聚功能的模块
  12. 第12章 玩转GUI编程
  13. 第13章 文件的读写
  14. 第14章 办公也能自动化
第1章 我的新朋友,它叫Python8 题
  1. 1.
    打开 IDLE,新建一个 first.py 文件,用三行 print 输出:我的名字、我的年龄、我喜欢的科目。
    保存后用 Run → Run Module 运行,检查是否三行都显示。
    对应第1课 我是Python,我强大
    ★☆☆
  2. 2.
    让 Python 当一次计算器:用一行 print 输出 98898932143+343534254*43124321 的结果。
    对比手算结果,体会大数计算。
    对应第1课 我是Python,我强大
    ★★☆
  3. 3.
    用 print 输出乘法算式 6×7=42 的样子(等号左右都要有内容)。
    print("6×7=", 6*7)
    对应第1课 我是Python,我强大
    ★★☆
  4. 4.
    用 print 输出一首 4 行的古诗,要求每行缩进两个全角空格,整体排版整齐。
    注意引号配对,中文标点不要混用。
    对应第1课 我是Python,我强大
    ★★★
  5. 5.
    分别在 IDLE Shell(交互式)和 .py 文件两种方式下输出一句话“你好,Python!”,比较两者的区别。
    想一想:关掉窗口后,哪边的代码还在?
    对应第2课 朋友间的问候
    ★☆☆
  6. 6.
    编写 flag.py,运行时输出“从今天开始我要学 Python 了!”。
    文件名不要用中文,避免运行报错。
    对应第3课 我要立个Flag
    ★☆☆
  7. 7.
    用 print 的 end 参数,把 5 个词语输出在同一行,中间用 - 隔开。
    print(x, end="-")
    对应第3课 我要立个Flag
    ★★☆
  8. 8.
    只用 print 和符号,画出一个爱心图案(至少 5 行)。
    别忘了 print("") 可以输出空行。
    对应第4课 我的符号图案
    ★★☆
第2章 召唤画图的小海龟12 题
  1. 9.
    导入 turtle,让小海龟前进 100 步,画出一条线段。
    记住三件套:import turtle → forward → done()。
    对应第5课 画图的小海龟
    ★☆☆
  2. 10.
    把小海龟的形状依次改成 arrow、turtle、circle、square,各运行一次并观察。
    turtle.shape("turtle")
    对应第5课 画图的小海龟
    ★★☆
  3. 11.
    画一个边长 100 的正方形(前进 + 右转 90 度,重复 4 次)。
    先画好第一步,再找重复规律。
    对应第5课 画图的小海龟
    ★★☆
  4. 12.
    设置画笔颜色为红色、粗细为 5,画一条线段。
    pencolor / pensize
    对应第6课 小海龟的绝学
    ★☆☆
  5. 13.
    画一个长 150、宽 80 的长方形。
    四条边要分两组:长、宽、长、宽。
    对应第6课 小海龟的绝学
    ★★☆
  6. 14.
    画一个边长为 120 的等边三角形。
    每次转角是多少度?先算一算。
    对应第6课 小海龟的绝学
    ★★☆
  7. 15.
    用变量 n 控制边数,画一个正 n 边形(n 分别取 5、6、8 试一试)。
    外角和是 360 度,每次转 360/n。
    对应第6课 小海龟的绝学
    ★★★
  8. 16.
    用 turtle 画一个等边三角形,回顾坐标与角度的关系。
    画完用 penup/pendown 把笔收起来。
    对应第7课 探索新天地
    ★☆☆
  9. 17.
    画一个五角星(提示:每次转 144 度,重复 5 次)。
    画之前先分析:五角星有几条边?
    对应第7课 探索新天地
    ★★☆
  10. 18.
    把画布背景设为蓝色(bgcolor),在上面画一颗黄色的五角星。
    注意设置背景色要在画图之前。
    对应第7课 探索新天地
    ★★★
  11. 19.
    画一颗填充金色(gold)的五角星,要用 begin_fill / end_fill。
    填充必须成对出现,否则不会上色。
    对应第8课 金灿灿的小星星
    ★★☆
  12. 20.
    自由创作:用基本图形组合出一座小房子(正方形墙 + 三角形屋顶 + 一扇窗户)。
    先画草图,再拆成几个小任务逐个完成。
    对应第8课 金灿灿的小星星
    ★★★
第3章 神奇的变量11 题
  1. 21.
    用 input 询问用户姓名,然后输出“XXX,你好!欢迎学习 Python。”
    name = input("请输入你的名字:")
    对应第9课 探寻程序的输入输出
    ★☆☆
  2. 22.
    输入两个整数,输出它们的和、差、积。
    input 得到的是字符串,要用 int() 转换。
    对应第9课 探寻程序的输入输出
    ★★☆
  3. 23.
    用 %d 格式化输出:“我叫XX,今年X岁”。
    对比字符串拼接和 % 格式化的写法。
    对应第9课 探寻程序的输入输出
    ★★☆
  4. 24.
    变量交换:deer="小鹿",fox="狐狸",交换后让 deer 变成狐狸、fox 变成小鹿。
    需要第三个临时变量来帮忙。
    对应第10课 脑筋急转弯一般的名字
    ★☆☆
  5. 25.
    三个变量 a、b、c 分别装“苹果”“香蕉”“橙子”,让它们轮转一圈(a←b,b←c,c←a)。
    画一画图,别把值弄丢了。
    对应第10课 脑筋急转弯一般的名字
    ★★☆
  6. 26.
    计算并输出 89*65 与 988/34 的结果。
    注意 / 得到的是浮点数。
    对应第11课 数字的奥秘
    ★☆☆
  7. 27.
    输入圆的半径 r,输出它的面积(π 取 3.14)。
    对比 int 和 float 两种半径的结果差异。
    对应第11课 数字的奥秘
    ★★☆
  8. 28.
    分别计算 3/2、3.0/2、3//2、3%2,把四个结果和你的猜想对比,说明区别。
    把结论写在代码注释里。
    对应第11课 数字的奥秘
    ★★★
  9. 29.
    用字符串拼接输出一句完整的自我介绍(至少包含姓名、爱好、梦想)。
    注意数字和字符串不能直接相加。
    对应第12课 字符串是什么东西
    ★☆☆
  10. 30.
    输入一句话,输出它的第 1 个字符、最后 1 个字符和总长度。
    索引从 0 开始,最后一个可以用 -1。
    对应第12课 字符串是什么东西
    ★★☆
  11. 31.
    下面哪些变量名是不合法的:myName、2name、my-name、_name、姓名、print?把不合法的改正确。
    变量名只能由字母、数字、下划线组成,且不能以数字开头。
    对应第13课 变量名字很讲究
    ★★☆
第4章 如果,那么大学问16 题
  1. 32.
    脑筋急转弯程序:问题“狐狸为什么总是摔跤?”,输入答案,答对了给奖励。
    用 if 判断答案是否等于“狡猾”。
    对应第14课 脑筋急转弯
    ★☆☆
  2. 33.
    输入一个整数,判断它是奇数还是偶数并输出。
    n % 2 == 0
    对应第14课 脑筋急转弯
    ★★☆
  3. 34.
    查找犯罪嫌疑人:给出三个嫌疑人的身高、体重特征,输入特征值找出符合条件的那个人。
    多个 if 可以并列使用。
    对应第15课 查找犯罪嫌疑人
    ★☆☆
  4. 35.
    输入 1、2、3 中的一个数字,分别输出“石头”“剪刀”“布”。
    想一想能否用后面学的结构简化。
    对应第15课 查找犯罪嫌疑人
    ★★☆
  5. 36.
    输入两个数,输出它们的比较结果(大于 / 小于 / 等于)。
    练习 >、<、==、!= 六个比较运算符。
    对应第16课 比较运算符的聚会
    ★☆☆
  6. 37.
    输入考试分数,输出等级:90 分以上优秀、80-89 良好、60-79 及格、否则不及格。
    注意区间的边界值别写错。
    对应第16课 比较运算符的聚会
    ★★☆
  7. 38.
    改错:下面这段 if 代码因为缩进不对导致结果错误,请修复并说明原因。
    缩进 4 个空格代表“属于这个 if”。
    对应第17课 缩进也有讲究
    ★★☆
  8. 39.
    输入年份,判断它是不是闰年(能被 4 整除且不能被 100 整除,或能被 400 整除)。
    这是经典的 if 嵌套练习。
    对应第17课 缩进也有讲究
    ★★★
  9. 40.
    密码验证:预设密码“123456”,输入正确输出“登录成功”,否则输出“密码错误”。
    if 和 else 只能二选一执行。
    对应第18课 if不做的,else来做
    ★☆☆
  10. 41.
    输入体温(如 37.8),判断是否发烧(≥37.3 为发烧),分别给出不同提示。
    注意输入是字符串,要先转 float。
    对应第18课 if不做的,else来做
    ★★☆
  11. 42.
    游戏段位程序:输入分数,<10 青铜、10-49 白银、50-99 黄金、≥100 王者。
    用 if-elif-else 一条链搞定。
    对应第19课 还有个兄弟叫作elif
    ★☆☆
  12. 43.
    输入身高和体重,计算 BMI 并输出“偏瘦 / 正常 / 偏胖 / 肥胖”。
    BMI = 体重 ÷ 身高²
    对应第19课 还有个兄弟叫作elif
    ★★☆
  13. 44.
    用 and 判断:只有当“年龄≥8 岁”且“身高≥130cm”时才能坐过山车。
    两个条件必须同时成立。
    对应第20课 满足两个条件用and
    ★☆☆
  14. 45.
    颜色混合:输入两种颜色(红/黄/蓝),用 and 判断混合后的颜色并输出。
    如 蓝+黄=绿、红+黄=橙。
    对应第20课 满足两个条件用and
    ★★☆
  15. 46.
    用 or 判断:输入今天是星期几,如果是周六或周日就输出“可以睡懒觉”。
    满足其中一个条件即可。
    对应第21课 满足一个条件用or
    ★☆☆
  16. 47.
    石头剪刀布:你和电脑各出一个(电脑用 random),判断谁赢,玩 3 局。
    综合 if/elif/else、and/or、随机数。
    对应第22课 逻辑运算符not
    ★★★
第5章 循环是种神奇的力量14 题
  1. 48.
    用 for 循环打印 1 到 10。
    for i in range(10) 从 0 开始。
    对应第23课 修炼内功for循环
    ★☆☆
  2. 49.
    用 range(1, 11) 打印 1 到 10,体会 range 的“含头不含尾”。
    再试试 range(1,11,2) 是什么效果。
    对应第23课 修炼内功for循环
    ★★☆
  3. 50.
    打印一行 9 的乘法:9×1=9 … 9×9=81。
    先写出一行的循环。
    对应第24课 输出一张九九乘法表
    ★☆☆
  4. 51.
    输出完整的九九乘法表(9 行)。
    两层 for 循环:外层管行,内层管列。
    对应第24课 输出一张九九乘法表
    ★★☆
  5. 52.
    输出“倒三角”形状的九九乘法表(第 1 行 9 个,第 2 行 8 个……)。
    内层的 range 终点要跟着外层变。
    对应第24课 输出一张九九乘法表
    ★★★
  6. 53.
    打印 20 以内的所有偶数。
    range 的步长设为 2。
    对应第25课 找出偶数
    ★☆☆
  7. 54.
    打印 1-100 中能被 3 整除的数,并输出它们的总和。
    用一个变量累加。
    对应第25课 找出偶数
    ★★☆
  8. 55.
    遍历字符串“我爱你,妈妈!”,逐字打印(每个字一行)。
    字符串也能被 for 遍历。
    对应第26课 遍历字符串对象
    ★☆☆
  9. 56.
    有一个名字列表 ['聪聪果','壮壮果','美美果'],逐个输出“XX,你好!”。
    for name in names:
    对应第26课 遍历字符串对象
    ★★☆
  10. 57.
    用 while 循环从 1 数到 100。
    别忘了让计数变量自己加 1,否则死循环。
    对应第27课 循环招式升级while
    ★☆☆
  11. 58.
    用 while 求 1+2+…+100 的和。
    循环三要素:初值、条件、变化。
    对应第27课 循环招式升级while
    ★★☆
  12. 59.
    改错:下面这段 while 是无限循环,请找出原因并修复。
    检查循环条件是否永远为真。
    对应第28课 可怕的无限循环
    ★★☆
  13. 60.
    猜数字:程序心里想一个 1-100 的数,玩家反复猜,直到猜中为止。
    用 while + break。
    对应第28课 可怕的无限循环
    ★★☆
  14. 61.
    打印 1-50,跳过所有含 7 或 7 的倍数的数(用 continue)。
    continue 是“跳过本次,继续下一次”。
    对应第29课 跳出循环
    ★★★
第6章 兄弟齐聚一堂17 题
  1. 62.
    创建藏书阁列表 ['史记','孙子兵法','大百科','四大名著','山海经'] 并打印。
    列表用中括号,元素之间用逗号。
    对应第30课 我的藏书阁
    ★☆☆
  2. 63.
    让用户输入 5 本书名,存进列表后打印出来。
    用 append 配合循环。
    对应第30课 我的藏书阁
    ★★☆
  3. 64.
    在藏书阁列表末尾追加一本新书《上下五千年》。
    append()
    对应第31课 我有新书了
    ★☆☆
  4. 65.
    用 insert 把《新华字典》插入到列表的第 2 个位置。
    索引从 0 开始,第 2 个位置索引是 1。
    对应第31课 我有新书了
    ★★☆
  5. 66.
    按索引查找:输入 0-4 的数字,输出对应位置的书名。
    越界会报错,注意范围。
    对应第32课 找出我要的图书
    ★☆☆
  6. 67.
    用 index() 找出《山海经》在列表中的位置,并输出“它在第 X 个”。
    找不到会报错,可以先判断 in。
    对应第32课 找出我要的图书
    ★★☆
  7. 68.
    图书换新:把列表中索引 2 的《大百科》换成《新大百科》。
    直接给 books[2] 赋新值。
    对应第33课 图书换新
    ★☆☆
  8. 69.
    批量替换:把列表中所有“旧书”改成“新书”。
    需要遍历并用索引赋值。
    对应第33课 图书换新
    ★★☆
  9. 70.
    用 remove 删除列表中被水泡坏的《孙子兵法》。
    remove 按“值”删除,不是按位置。
    对应第34课 这里有本需要丢掉的书
    ★☆☆
  10. 71.
    分别用 del 和 pop 删除最后一个元素,观察两者的区别。
    pop 会把删掉的元素“还给你”。
    对应第34课 这里有本需要丢掉的书
    ★★☆
  11. 72.
    成绩名单排序后,用切片取出前 3 名。
    nameList[0:3]
    对应第35课 找出成绩前3名的同学
    ★☆☆
  12. 73.
    输入 5 个同学的分数,降序排列后输出前三名及其分数。
    sort(reverse=True)
    对应第35课 找出成绩前3名的同学
    ★★☆
  13. 74.
    遍历藏书阁列表,逐行打印每本书。
    for book in books:
    对应第36课 遍历列表
    ★☆☆
  14. 75.
    用 enumerate 给每本书加上序号 1、2、3… 再打印。
    for i, book in enumerate(books, 1):
    对应第36课 遍历列表
    ★★☆
  15. 76.
    给精灵排座位:输入 5 个精灵的身高,按从矮到高排序后输出。
    列表的 sort 方法。
    对应第37课 给精灵排座位
    ★★☆
  16. 77.
    创建一个元组保存一年的四季,尝试修改它并观察报错信息,说明元组的特点。
    元组是“只读列表”。
    对应第38课 元组是只读的
    ★★☆
  17. 78.
    用字典做商品价目表(牛奶 5 元、面包 8 元…),实现查询、新增、修改和遍历全部商品。
    字典用键值对,键名要唯一。
    对应第39课 字典的强大
    ★★★
第7章 函数拥有巨大的能力9 题
  1. 79.
    定义一个 say_hello() 函数,调用 3 次。
    先定义,后调用。
    对应第40课 属于我的函数
    ★☆☆
  2. 80.
    把“把大象装冰箱”的三步写成 putTheElephantIn() 函数。
    函数里可以放多条 print。
    对应第40课 属于我的函数
    ★★☆
  3. 81.
    写一个 add(a, b) 函数,返回两数之和,调用并输出结果。
    注意 return 和 print 的区别。
    对应第41课 有参数的函数
    ★☆☆
  4. 82.
    给 add2(a, b=2) 设置默认参数,分别用一个参数和两个参数调用。
    默认参数必须放在后面。
    对应第41课 有参数的函数
    ★★☆
  5. 83.
    写一个可以接收任意多个数字并求和的函数(*args)。
    不定长参数用星号。
    对应第42课 不确定数量的参数
    ★☆☆
  6. 84.
    写一个函数接收一个列表,返回列表的平均值。
    sum() 和 len() 帮你快速完成。
    对应第42课 不确定数量的参数
    ★★☆
  7. 85.
    写 findMax(nums) 函数,返回列表中的最大值(不要用内置 max)。
    用变量 maxNum 逐个比较。
    对应第43课 函数的返回值
    ★☆☆
  8. 86.
    写一个函数同时返回两个数的和、差、积、商。
    return 后面可以跟多个值。
    对应第43课 函数的返回值
    ★★☆
  9. 87.
    改错:函数里的变量和主程序里的变量重名导致结果不对,请修复并说明全局与局部的区别。
    函数内部的变量默认是局部的。
    对应第44课 变量的作用域
    ★★★
第8章 类与对象的奥秘9 题
  1. 88.
    定义 Animal 类,有 name 和 legNum 属性,创建一个动物对象并打印它的属性。
    class Animal: 后面缩进写属性。
    对应第45课 熟悉的类和对象
    ★☆☆
  2. 89.
    设计 Student 类(姓名、年龄、班级),创建 3 个学生对象。
    类是图纸,对象是根据图纸造出来的东西。
    对应第45课 熟悉的类和对象
    ★★☆
  3. 90.
    给 Animal 类加 __init__ 构造方法,创建对象时直接传入名字和腿数。
    self 代表“对象自己”。
    对应第46课 创建实例对象
    ★☆☆
  4. 91.
    用构造方法创建 dog 和 tiger 两只动物,分别设置不同属性。
    每个对象的属性互不影响。
    对应第46课 创建实例对象
    ★★☆
  5. 92.
    给 Animal 类加 bark() 方法,调用后输出“汪汪汪”。
    类里的函数叫方法,第一个参数是 self。
    对应第47课 对象的动作
    ★☆☆
  6. 93.
    设计 Calculator 类,实现加、减、乘、除四个方法。
    方法之间可以互相调用。
    对应第47课 对象的动作
    ★★☆
  7. 94.
    设计 BankAccount 类:私有属性 __balance,提供存款、取款、查询余额三个方法。
    双下划线开头的属性在外部不能直接访问。
    对应第48课 封装性
    ★★☆
  8. 95.
    让 Dog 类继承 Animal 类,并新增看家 watch() 方法。
    class Dog(Animal):
    对应第49课 继承性
    ★★☆
  9. 96.
    设计图形类族:Shape 父类 + Circle / Square / Triangle 子类,各自实现 area() 求面积。
    同一个方法名,不同对象有不同表现——这就是多态。
    对应第50课 多态性
    ★★★
第9章 注释帮助我们理解2 题
  1. 97.
    给一段没有注释的 10 行代码加上单行注释,让同学一看就懂。
    注释要说明“做什么”,不是重复代码。
    对应第51课 如何创建注释
    ★☆☆
  2. 98.
    用三引号写一段多行注释,说明你整个程序的功能、作者和创建时间。
    别把真正的代码注释掉。
    对应第51课 如何创建注释
    ★★☆
第10章 警报,警报,发现异常4 题
  1. 99.
    除法计算器:输入被除数和除数,用 try-except 捕获“除数为 0”的错误。
    except ZeroDivisionError:
    对应第52课 异常的守护者
    ★☆☆
  2. 100.
    给上面的程序加上 finally,无论是否出错都输出“我进行了除法运算”。
    finally 里的代码一定会执行。
    对应第52课 异常的守护者
    ★★☆
  3. 101.
    用 print 调试法:在程序关键位置打印变量值,找出结果不对的原因。
    打印变量是初学者最有效的调试手段。
    对应第53课 调试
    ★☆☆
  4. 102.
    阅读三段报错信息(SyntaxError / IndexError / ValueError),分别指出错误原因并修复。
    学会看最后一行的错误类型。
    对应第53课 调试
    ★★☆
第11章 汇聚功能的模块4 题
  1. 103.
    创建 verificationCode.py 模块,功能是生成 4 位随机验证码。
    模块就是一个 .py 文件。
    对应第54课 短信验证码
    ★☆☆
  2. 104.
    用 import 导入自己写的模块,调用里面的函数。
    模块文件要和主程序在同一目录。
    对应第55课 使用验证码模块
    ★☆☆
  3. 105.
    用 from ... import ... 只导入需要的函数,对比两种导入方式的写法。
    from 模块 import 函数
    对应第55课 使用验证码模块
    ★★☆
  4. 106.
    给模块取别名(import xxx as vc),并用别名调用;说明什么是命名空间。
    别名让长模块名变短。
    对应第56课 命名空间
    ★★☆
第12章 玩转GUI编程7 题
  1. 107.
    用 tkinter 创建第一个根窗口,设置标题和大小。
    import tkinter → Tk() → mainloop()
    对应第57课 第一个GUI程序——根窗口
    ★☆☆
  2. 108.
    在窗口上添加一个 Label 标签,显示“你好,Python!”。
    Label(root, text=...) 然后用 pack()。
    对应第58课 Label组件
    ★☆☆
  3. 109.
    添加一个 Button 按钮,单击后在窗口上显示一句话。
    按钮靠 command 参数绑定函数。
    对应第59课 Button组件
    ★★☆
  4. 110.
    做一个登录界面:两个 Entry 输入框(账号、密码)+ 一个登录按钮。
    密码框可以用 show="*" 隐藏。
    对应第60课 Entry组件
    ★★☆
  5. 111.
    用 Canvas 画布画一条直线、一个矩形和一个圆形。
    create_line / create_rectangle / create_oval
    对应第61课 Canvas组件
    ★★☆
  6. 112.
    用 grid 布局把 3 个组件排成整齐的两列。
    对比 pack 和 grid 的区别。
    对应第62课 布局管理方式
    ★★☆
  7. 113.
    综合:做一个简易计算器界面(数字按钮 + 显示框),至少能完成加法。
    先做界面,再接功能。
    对应第62课 布局管理方式
    ★★★
第13章 文件的读写4 题
  1. 114.
    新建一个 python.txt,写入两行文字,然后关闭文件。
    open(..., "w") 写入,别忘 close。
    对应第63课 什么是文件
    ★☆☆
  2. 115.
    读取刚才的文件,把内容打印出来。
    open(..., "r") 读取。
    对应第64课 读取文件
    ★☆☆
  3. 116.
    往文件末尾追加一行新内容(用 "a" 模式)。
    w 会覆盖,a 是追加。
    对应第64课 读取文件
    ★★☆
  4. 117.
    把班级同学名单写入文件,再读出来按行编号打印。
    用 readlines 或 for 逐行读。
    对应第65课 游戏时间
    ★★☆
第14章 办公也能自动化3 题
  1. 118.
    用 openpyxl 创建一个 Excel 文件,在 A1 单元格写入“九九乘法表”。
    先 pip install openpyxl。
    对应第66课 创建Excel文件
    ★★☆
  2. 119.
    把九九乘法表的 81 个算式写入 Excel(第 1 行 1 列对应 1×1)。
    cell(row= , column= , value= )
    对应第67课 向表格中写入运算式
    ★★☆
  3. 120.
    给九九乘法表化妆:设置字体、边框、单元格背景色,做出漂亮的表格。
    Font / Border / PatternFill
    对应第68课 美妆后的九九乘法表
    ★★★
使用建议:每学完一课做对应的 1–2 题;★ 为课堂当堂完成,★★ 为课后作业,★★★ 为选做挑战。 勾选框可直接点击打勾(也可打印后在纸上打勾)。遇到卡住的题,回到对应课文页看原书讲解。