Python Tips: Python で 16/256 階調 RGB カラーをランダムに出力したい

Python を使って CSS に使うような 16 階調の RGB カラーをランダムに生成する方法をご紹介します。

ランダム化の部分には組み込みの random ライブラリ、 16 進数にする部分には format の書式指定を使う方法がシンプルでやりやすいかと思います。以下のコードは Stack Overflow で紹介されていた方法を少し改変したものです。

import random

# 一度きりならかんたんに
rc = lambda: random.randint(0, 255)
print('#{:x}{:x}{:x}'.format(rc(), rc(), rc()))  # => #bd9f7b など(英字は小文字)
print('#{:X}{:X}{:X}'.format(rc(), rc(), rc()))  # => #BD9F7B など(英字は大文字)

# 何度も色を生成したいなら関数化
def generate_random_color():
    return '#{:X}{:X}{:X}'.format(*[random.randint(0, 255) for _ in range(3)])

generate_random_color()  # => #EF2F5B など