Pythonで好きな文字でランダム文字列を作る

はじめに

今回はランダムな文字列を好きな長さで作れる方法をご紹介したいと思います。

例えばランダムな名前のファイルを作ったり、自分好みのパスワードを作っったりするときに非常に便利です。

Pythonの簡単なインストール方法はこちらをご覧ください。

実行関数

ランダム文字列を作ってくれるPytnon関数はこちらになります。

def generate_random_string(length):
    # 使用する文字セット(英数字)
    characters = string.ascii_letters + string.digits
    # ランダムな文字列を生成
    return ''.join(random.choices(characters, k=length))

使い方はこのようにします。

length = 10  # 生成する文字列の長さ
for _ in range(10): //何個生成するか
    random_string = generate_random_string(length)
    print(f"ランダム文字列: {random_string}")

説明

関数の引数(length)は文字列の長さです。

charactersはランダムに使いたい文字です。

この文字列はランダムに使いたい文字列を入れれば良く、次のようにも使用できます。

characters = “abcdefg”

以下の宣言を使うこともできます。

・string.ascii_letters

  後述の ascii_lowercase と ascii_uppercase を合わせたもの。この値はロケールに依存しません。

・string.ascii_lowercase

  小文字 'abcdefghijklmnopqrstuvwxyz' 。この値はロケールに依存せず、固定です。・

・string.ascii_uppercase

  大文字 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 。この値はロケールに依存せず、固定です。

・string.digits

  文字列 '0123456789' です。

・string.hexdigits

  文字列 '0123456789abcdefABCDEF' です。

・string.octdigits

 文字列 '01234567' です。

・string.punctuation

C ロケールにおいて、区切り文字 (punctuation characters) として扱われる ASCII 文字の文字列です: !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~.

・string.printable

印刷可能な ASCII 文字で構成される文字列です。 digitsascii_letterspunctuation および whitespace を組み合わせたものです。

まとめ

いかがだったでしょうか?ランダム文字列を作るときに、入れたい文字、入れたくない文字等色々とあると思います。Pythonでは簡単にプログラムを作って実行できるので、お好みの文字列を作ることができると思います。

こちらもよろしく

ロボットコーダーズ
プログラミング教室ロボットコーダーズのホームページです