Python LV1 结业闯关赛

先做后讲 · 综合复习测试

🐍 LV1 闯关赛
90:00
0/22

第一部分 · 选择题 每题 3 分 · 共 24 分

第二部分 · 填空题 每空 2 分 · 共 22 分

1补全代码,画一个绿色的圆:
import turtle
t = turtle.Pen()
t.pensize(8)
t.('green')   # ① 设置画笔颜色
t.penup()
t.goto(0, 0)
t.()          # ② 落笔
t.(60)        # ③ 画半径 60 的圆
💡 pencolor( ) 设置颜色;pendown( ) 落笔;circle( ) 画圆,参数是半径不是直径。
2填运算符(n = 345):
n = 345
print(n  10)   # ① 输出个位 5
n = n  10     # ② n 变成 34
💡 % 取余数(拿出个位);// 整除(扔掉个位)。两个运算“分开走”。
3写出程序运行结果:
n = 1234
total = 0
while n > 0:
    total = total + n % 10
    n = n // 10
print(total)
运行结果是:
💡 每轮取出个位并累加:4 + 3 + 2 + 1 = 10。这道题就是编程题 2 的铺垫!
4下面程序会循环几轮、打印出什么?
for i in range(2, 9):
    print(i, end=' ')
循环 次,打印出
💡 range(2, 9) 产生 2 ~ 8 共 7 个数(终点 9 取不到!),end=' ' 让数字横着排 → 打印 2 3 4 5 6 7 8。
5补全代码(判断 n 在 2~n-1 之间有没有因数):
n = int(input('请输入一个大于 1 的数 >>> '))
for i in range(2, n):
    if n % i == 0:
        print('找到了因数', i)
                  # ① 找到就立刻退出
                  # ② 与 for 对齐
    print('没找到')
💡 break:立刻退出循环;else 必须与 for 对齐,循环完整跑完(没被 break 打断)才执行。
6找错题:下面程序画两个圆,但圆之间出现了一条连线,缺少的命令是:
t.goto(-100, 0)
t.pencolor('red')
t.pendown()
t.circle(50)
t.goto(100, 0)
t.pencolor('blue')
t.pendown()
t.circle(50)
缺少命令:
💡 画完第一个圆,笔还“贴着纸”,直接 goto 会拖出一条线——移动前要先 t.penup() 抬笔!

第三部分 · 编程题 每题 18 分 · 共 54 分

1编程题 1:彩虹毛毛虫 🐛18 分

用 turtle 画一条彩虹毛毛虫:

  • 身体 5 节,从左到右颜色依次:红、橙、绿、蓝、紫,每节半径 40
  • 头是 1 个粉色的圆,半径 50
  • 头上画两只黑色小眼睛(半径 6)
  • ⚠️ 圆与圆之间不能出现连线

参考坐标(可自己调整):身体起点 (-180,0)、(-120,0)、(-60,0)、(0,0)、(60,0);头 (130,-10);眼睛 (115,50) 和 (145,50)

💡 提示:画图三步走 penup → goto → pendown;别忘了 circle() 画出的圆在起点的上方

✅ 参考效果:你的程序运行后应该画出这样的毛毛虫

❌ 常见错误:忘记 penup(),圆之间被拖出连线(就像填空第 6 题!)

✅ 交卷后对照参考代码,给自己打分:

2编程题 2:回文数侦探 🔍18 分

回文数 = 正着读、倒着读都一样的数,如 121、1331、7。程序要求:

  • 输入一个正整数,把它倒过来打印(例:输入 1234,输出 4321)
  • 判断它是不是回文数
💡 提示:每一轮循环做两件事——% 10 取出个位、// 10 去掉个位(填空第 3 题刚练过);想一想原数要不要先存一份?
 程序运行效果
请输入一个正整数 >>> 1234
倒过来是: 4321
1234 不是回文数
请输入一个正整数 >>> 121
倒过来是: 121
121 是回文数!
请输入一个正整数 >>> 9
倒过来是: 9
9 是回文数!

💡 黄色是你输入的数字,白色是程序输出。写完程序后,用这三个数字(1234、121、9)测试,输出一模一样才算过关!

✅ 交卷后对照参考代码,给自己打分:

3编程题 3:互质数侦探 🕵️18 分

互质数 = 除了 1 以外没有其他公因数的两个数。例:8 和 9 互质(它们都不是质数哦!);12 和 18 不互质(有公因数 2)。

程序要求:输入两个大于 1 的正整数,判断它们是不是互质数。

💡 提示:公因数最大不会超过较小的那个数;“判断有没有”的问题 → for...else + break
 程序运行效果
请输入第一个大于 1 的正整数 >>> 8
请输入第二个大于 1 的正整数 >>> 9
8 和 9 是互质数!
请输入第一个大于 1 的正整数 >>> 12
请输入第二个大于 1 的正整数 >>> 18
12 和 18 不互质,公因数有 2
请输入第一个大于 1 的正整数 >>> 14
请输入第二个大于 1 的正整数 >>> 15
14 和 15 是互质数!

💡 黄色是你输入的数字,白色是程序输出。彩蛋:示例③ 相邻的两个数一定互质!写完程序多用几组数字试试,输出要和示例一模一样哦。

✅ 交卷后对照参考代码,给自己打分: