不需要 GUI,不需要第三方库------
1 个文件、30 行代码、0 依赖,
就能在终端里看到 实时跳动的彩虹时钟 ,
还支持 12/24 小时制 随意切换!
复制即跑,改两行就能玩出更多花样!🎨
一、最终效果:先睹为快!
运行命令:
bash
python terminal_clock.py --12
终端实时显示:
🌈 12:34:56 PM
(每字符都在渐变,0.2 秒刷新一次)
二、核心思路(3 步)
- HSV → RGB:让颜色随时间流动(Hue 循环)
- 逐字符上色:每个字单独计算色相偏移 → 彩虹渐变
- 清屏 + 刷新 :用
os.system('clear||cls')实现"动画帧"
三、完整源码(< 30 行)
python
#!/usr/bin/env python3
import time, os, sys, datetime
def hsv_rgb(h, s, v):
"""HSV → RGB 0-255 简易实现"""
c = v * s
x = c * (1 - abs((h * 6) % 2 - 1))
m = v - c
r, g, b = [(c + m), (x + m), (m)], [(x + m), (c + m), (m)], [(m), (c + m), (x + m))][int(h * 6) % 6]
return int(r * 255), int(g * 255), int(b * 255)
def rainbow_clock():
while True:
now = datetime.datetime.now()
text = now.strftime("%I:%M:%S %p") if "--12" in sys.argv else now.strftime("%H:%M:%S")
rainbow = "".join(f"\033[38;2;{r};{g};{b}m{c}\033[0m"
for i, c in enumerate(text)
for r, g, b in [hsv_rgb((i / len(text) + time.time() % 1), 1, 1)])
os.system('clear||cls')
print(f"\n{rainbow}\n{'按 Ctrl+C 退出':^20}")
time.sleep(0.2)
if __name__ == "__main__":
rainbow_clock()
四、运行方式
bash
# 24 小时制
python terminal_clock.py
# 12 小时制(AM/PM)
python terminal_clock.py --12
五、可玩改装(3 分钟)
| 改装点 | 代码提示 |
|---|---|
| 心跳闪烁 | time.sleep(0.5) 改大,加 if int(time.time()) % 2: 控制显隐 |
| 渐隐尾巴 | 清屏前打印 半透明空格 覆盖旧帧 |
| 加边框 | print("═" * 20) 上下框线 |
| 改形状 | 把 text 换成 emoji 时钟 🕐🕑🕒 |
六、知识点速记(背它!)
**"HSV 循环色相,RGB 逐字符,清屏刷帧,终端动画成!"**🎵
