趣味代码题:「彩虹密码盘」

52 阅读1分钟

微信图片_20251014151033_10_20.jpg

语言:Python(30 行内)
难度:🌕🌕🌑(2 / 5)
特点:彩色输出 + 简单加密 + 彩蛋


📜 题目描述

  1. 输入任意字符串(英文/数字/符号)
  2. 终端输出彩虹渐变密码盘
    • 每行一个字符
    • 颜色随位置渐变(红→绿→蓝→紫)
    • 行号 = ASCII 偏移值(彩蛋)
  3. 解密方式(隐藏彩蛋):
    取每行行号 → 转 chr() → 拼接 → 得到原字符串!

💻 参考实现(先别看!自己写!)

import sys, math

def rainbow_disk(s):
    for i, ch in enumerate(s):
        hue = i / len(s)          # 0.0 → 1.0
        r = int(255 * (1 + math.cos(hue * 2 * math.pi)) / 2)
        g = int(255 * (1 + math.cos(hue * 2 * math.pi + 2)) / 2)
        b = int(255 * (1 + math.cos(hue * 2 * math.pi + 4)) / 2)
        print(f"\033[38;2;{r};{g};{b}m{i:3d}{ch}\033[0m")

if __name__ == "__main__":
    txt = input("请输入任意字符串:")
    rainbow_disk(txt)
    # 彩蛋解密(行号→字符)
    dec = ''.join(chr(i) for i in range(len(txt)))
    print(f"\n🎁 解密彩蛋:{dec}")