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

不需要 GUI,不需要第三方库------

1 个文件、30 行代码、0 依赖,

就能在终端里看到 实时跳动的彩虹时钟

还支持 12/24 小时制 随意切换!

复制即跑,改两行就能玩出更多花样!🎨

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

运行命令:

bash 复制代码
python terminal_clock.py --12

终端实时显示:

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

二、核心思路(3 步)

  1. HSV → RGB:让颜色随时间流动(Hue 循环)
  2. 逐字符上色:每个字单独计算色相偏移 → 彩虹渐变
  3. 清屏 + 刷新 :用 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 逐字符,清屏刷帧,终端动画成!"**🎵

相关推荐
qq_2975746720 小时前
【实战教程】SpringBoot 实现多文件批量下载并打包为 ZIP 压缩包
java·spring boot·后端
计算机程序设计小李同学1 天前
基于 Spring Boot + Vue 的龙虾专营店管理系统的设计与实现
java·spring boot·后端·spring·vue
Charlie_lll1 天前
力扣解题-[3379]转换数组
数据结构·后端·算法·leetcode
VX:Fegn08951 天前
计算机毕业设计|基于springboot + vue云租车平台系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
汤姆yu1 天前
2026基于springboot的在线招聘系统
java·spring boot·后端
计算机学姐1 天前
基于SpringBoot的校园社团管理系统
java·vue.js·spring boot·后端·spring·信息可视化·推荐算法
hssfscv1 天前
Javaweb学习笔记——后端实战8 springboot原理
笔记·后端·学习
咚为1 天前
Rust tokio:Task ≠ Thread:Tokio 调度模型中的“假并发”与真实代价
开发语言·后端·rust
Anastasiozzzz1 天前
对抗大文件上传---分片加多重Hash判重
服务器·后端·算法·哈希算法
Vivienne_ChenW1 天前
DDD领域模型在项目中的实战
java·开发语言·后端·设计模式