Categories: Python

【Python】ランダムな文字列を生成する方法

この記事では、Python でランダムな文字列を生成する方法を解説します。

文字列をランダムに生成することでパスワードをランダムに生成したり、ユーザー名をランダムに生成したりすることができます。

それでは、生成方法を見ていきましょう!

任意の文字からランダムな文字列を生成

任意の文字を格納したイテラブルを生成して random.choices() を使うことで任意の文字からランダムな文字列を生成することができます。

import random

chars = ('a', 'A', '@', '!')

def randchars(chars, length):
    return ''.join(random.choices(chars, k=length))


print(randchars(chars, 3))

実行結果

a@A

アルファベットからランダムな文字列を生成

アルファベットの文字コードを random.randint()関数 で生成して chr()関数 を使って文字に変換することでランダムな文字列を生成することができます。

import random

def randstr(length):
    return ''.join([chr(random.randint(97, 122)) for _ in range(length)])


print(randstr(10))

実行結果

hicmhxikxo

生成する文字コードの範囲を変えることでひらがなの文字列も生成できる。

def randstr(length):
    return ''.join([chr(random.randint(12354, 12435)) for _ in range(length)])


print(randstr(10))

実行結果

やちぶばげごでぅわあ

アルファベット + ひらがな

使用する文字コードの範囲をリストとして生成し、それを結合されることで任意の範囲を持ったリストを作成できる。あとは、random.choice() でリストからランダムに要素を取得すれば実現できます。

def randstr(length):
    chars = list(range(97, 122)) + list(range(12354, 12435))
    return ''.join([chr(random.choice(chars)) for _ in range(length)])


print(randstr(10))

実行結果

くうdめじあgmたよ

ひらがなの方が数が多いので大体ひらがなになってしまう。

ゆうまる

独学でプログラミングを勉強しているおじさん。いろんな言語を勉強したが浅く広くなためあまり仕事につながらない。また忘れっぽいため自分のブログを備忘録としても使っている。産まれてこのかたずっとネコを飼ってる生粋のネコ派。最近お腹が出てきて筋トレに奮闘中!

Recent Posts

【Dart】コンストラクタのデフォルト引数について

Dartのコンストラクタのデフォルト引数…

2週間 ago

【Unity】有料アセットを無料で手に入れる方法

この記事では、Unityの有料アセットを…

4か月 ago

【Python】任意の秒数だけ処理を一時停止する方法【sleep()関数】

この記事では、Pythonで任意の秒数だ…

1年 ago

【Python】Wordの文書の新規作成と読み書き

この記事では、Pythonを使ってWor…

1年 ago

【Python】メタクラスって結局なんなの?

この記事では、Pythonのメタクラスに…

1年 ago