Pythonのランダム関数について。
この記事の内容はコチラです
- Pythonでランダムな文字列を作る
- ランダム関数の使い方
ある数値の範囲内で乱数を取得したり、整数・小数なども指定して乱数を作ることができます。
今回は、Pythonでランダムな文字列を作る「random」の使い方を解説します。
ランダムな文字列を作る
Pythonでは「random」を使ってランダムな文字列を作ることができます。
ランダムな文字列を作る関数
import random import string def GetRandomStr(num): # 英数字をすべて取得 dat = string.digits + string.ascii_lowercase + string.ascii_uppercase # 英数字からランダムに取得 return ''.join([random.choice(dat) for i in range(num)])
GetRandomStr(10) #[結果] x6Dq9RMFy6
ここではランダムな文字列を作る関数「GetRandomStr」を定義しました。
パラメータは桁数です。「GetRandomStr(10)」とすると、10桁のランダムな文字列を取得できます。
解説1. 英数字を取得
import string # 英数字をすべて取得 dat = string.digits + string.ascii_lowercase + string.ascii_uppercase print(dat) #[結果] 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
「string.digits」は数字、「string.ascii_lowercase」は英字小文字、「string.ascii_uppercase」は英字大文字を取得します。
これをすべて結合して「dat」という文字列を作りました。
解説2. ランダム文字列を1文字取得
import random import string # 英数字をすべて取得 dat = string.digits + string.ascii_lowercase + string.ascii_uppercase # 英数字からランダムに1文字取得 random.choice(dat) #[結果] f
「random.choice」で「dat」からランダムに文字列を1文字取得しました。1文字だけでは使えないので、任意の文字数のランダム文字列を取得できるように修正します。
解説3. ランダム文字列を指定文字数だけ取得
import random import string # 英数字をすべて取得 dat = string.digits + string.ascii_lowercase + string.ascii_uppercase # 英数字からランダムに10文字取得 ''.join([random.choice(dat) for i in range(10)]) #[結果] PpnUw7uiV1
「”.join」でリストの配列をすべて結合します。リストは「range(10)」で配列10になるようにしました。ここを可変にしたものが最初に作った関数「GetRandomStr」です。
参照:https://docs.python.jp/3/library/random.html
これで「random」を使って任意の桁数のランダムな文字列を作ることができました。
以上、Pythonでランダムな文字列を作る「random」の使い方でした。
コメント