2015/03/27

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 など

Python2 であれば Stack Overflow に紹介されたいたように str 型の % 演算子を使ってもよいのですが、 2015 年現在であれば Python3 互換の format() メソッドを使う方法がおすすめです。

0 件のコメント: