この記事では、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たよ
ひらがなの方が数が多いので大体ひらがなになってしまう。