📖 学员手册
代码讲解已合并到高亮预览的代码注释里
🕰️ 文明城市时间系统 · 同步钟楼 · 学员手册
第二季:文明进化计划 · 第3课(总第十一课) | 60 分钟 | 城市时间系统 | +180 EXP | 🕰️
| 你将学会 | 你将完成 |
|---|---|
| math.radians / sin / cos | 把摆角换算成坐标 |
| time.localtime / strftime | 读取并显示真实时间 |
| tm_sec % 30 | 做交通信号周期判断 |
| clear / update | 制作连续动画 |
| Turtle 画线、圆点和文字 | 完成城市同步钟楼 |
一、🎬 城市任务
身份认证系统解决了谁能进入,城市能源系统解决了城市怎么供电。现在文明社会出现新的问题:交通灯、学校上课铃、医院排班和能源调度都需要统一时间。豆豆需要你修复城市同步钟楼。
二、📐 角度怎样变成坐标
钟摆长度固定为 L,摆角是 θ。Python 的 sin 和 cos 使用弧度,所以要先用 radians 转换。
python
rad = math.radians(angle)
x = length * math.sin(rad)
y = 300 - length * math.cos(rad)三、⏱️ 秒针怎样同步
一圈 360°,一分钟 60 秒,所以每秒对应 6°。读取 now.tm_sec 后乘以 6,就能得到真实秒针角度。
python
now = time.localtime()
second_angle = now.tm_sec * 6
current_time = time.strftime('%H:%M:%S', now)四、🚦 交通灯周期
交通灯不是随机变色,而是按周期变化。now.tm_sec % 30 可以把秒数限制在 0-29 之间:
python
traffic_state = 'GREEN' if now.tm_sec % 30 < 18 else ('YELLOW' if now.tm_sec % 30 < 23 else 'RED')五、六关挑战
- 运行代码,找到支架、摆线、摆锤、钟面和城市信息牌。
- 修改
length,观察摆长变化。 - 修改
max_angle和angle_speed,观察运动变化。 - 观察
time.localtime()、strftime()和tm_sec怎样同步真实时间。 - 观察
tm_sec % 30怎样把时间分成绿灯、黄灯和红灯。 - 组合标题、钟面、钟针、摆锤、交通信号和信息牌参数,完成个人城市同步钟楼。
提示:代码顶部的标题、颜色、尺寸和动画变量全部连接右侧作品;
angle、x、y、now是程序自动计算的派生变量。
六、作品标准
- ✅ 钟摆能够连续往返
- ✅ 秒针与数字时间来自系统时间
- ✅ 交通灯状态能随秒数变化
- ✅ 画面没有残留摆锤
- ✅ 至少修改 3 个参数,形成个人文明城市风格
Ctrl+/ 注释 · ▶ 运行
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
点击 ▶ 运行或按 Ctrl+Enter
📋 任务卡
1搭建城市钟楼
建立画布、支架、摆线、摆锤和钟面。
💡认识 Screen、Turtle、goto 和 dot+10 XP
2角度变成坐标
用三角函数把钟摆角度换算成 x、y 坐标。
💡观察 radians、sin 和 cos+10 XP
3创建动画循环
用帧循环、clear 和 update 让画面连续运动。
💡修改 range(240) 和 angle_speed+10 XP
4同步真实时间
从系统时间计算秒针角度并显示数字时间。
💡观察 localtime、strftime 和 tm_sec+10 XP
5交通信号节奏
用取模把秒数分成绿灯、黄灯和红灯周期。
💡观察 tm_sec % 30+10 XP
6发布城市时间系统
调整参数,创造自己的文明城市同步钟楼。
💡修改颜色、摆长和最大角度+10 XP
🎁 完成全部 +30 XP
加载中
▶▼ 🧩 扩展
📦numpy
📦matplotlib
📦pillow
📦requests
📦sympy
📦pandas
📦scipy
📦beautifulsoup4
📦pygame
📦flask
📦opencv-python
📦nltk
📦sqlalchemy
📦plotly