🐍「Python 终端彩色时钟」:彩虹渐变 + HSV 调色,30 行代码让命令行走起!

222 阅读1分钟

不需要 GUI,不需要第三方库——
1 个文件、30 行代码、0 依赖,
就能在终端里看到 实时跳动的彩虹时钟
还支持 12/24 小时制 随意切换!
复制即跑,改两行就能玩出更多花样!🎨

微信图片_20251014151033_10_20.jpg

一、最终效果:先睹为快!

运行命令:

python terminal_clock.py --12

终端实时显示:

🌈 12:34:56 PM
(每字符都在渐变,0.2 秒刷新一次)

二、核心思路(3 步)

  1. HSV → RGB:让颜色随时间流动(Hue 循环)
  2. 逐字符上色:每个字单独计算色相偏移 → 彩虹渐变
  3. 清屏 + 刷新:用 os.system('clear||cls') 实现“动画帧”

三、完整源码(< 30 行)

#!/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()

四、运行方式

# 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 逐字符,清屏刷帧,终端动画成!”**🎵