Pythonで乱数を作る方法について書いています。
Pythonで乱数を作りたいときにはrandomモジュールを使うと良いです。
randomモジュールのrandrange関数とrandint関数を使うことで、指定した範囲で整数値の乱数を作れます。
載せているコードはPythonのバージョン3.11.0で確認しました。
公式ドキュメントではこちらに詳細が書いています。
randrange関数を使う
randomモジュールのrandrange関数を使って、乱数を作ってみます。
例えば、下記のように使うことができます。
import random
result = random.randrange(50)
print(result) # 41
最初にrandomモジュールをインポートしています。
次の処理で、randomモジュールのrandrange関数を使っています。
randrange関数に引数として渡している値は「50」です。
これで「0」から「49」のランダムな値が取得できます。
指定した終了値の「50」は出力対象にならないので注意が必要です。
取得した結果をresult変数に受け取っています。
その後にprint関数で出力しました。
「0」から「49」の乱数が出力されることが確認できます。
開始値を指定する
randrange関数に開始値を指定して、開始値と終了値の間の数値を取得することもできます。
import random
result = random.randrange(10, 30)
print(result) # 19
先ほどと同じプログラムのrandrange関数に、渡している引数を変えました。
第1引数が開始値で、第2引数が終了値です。
これで「10」から「29」(終了値を除く)の値が取得され、result変数に格納されます。
マイナス値も指定できる
開始値と終了値にはマイナスの値を指定することができます。
import random
result = random.randrange(-20, -10)
print(result) # -12
上記ではマイナス値を引数に指定しています。
このようにマイナス値を指定して、その間の乱数を取得することもできます。
開始値が終了値を超えていたら?
開始値が終了値を超えていた場合には、エラーになるので注意が必要です。
例えば、下記のようなときです。
result = random.randrange(15, 10)
この場合には、下記のようにValueError
が発生します。
ValueError: empty range for randrange() (15, 10, -5)
指定する値に気をつけましょう。
randint関数を使う
randomモジュールのrandint関数でも乱数が作成できます。
公式ページによると、この関数はrandrange(a, b+1)
のエイリアスとのことです。
import random
result = random.randint(0, 10)
print(result) # 4
最初にrandomモジュールをインポートしています。
次の処理で、randomモジュールのrandint関数を使っています。
randint関数に渡しているのは、開始値と終了値になります。
randint関数では2つの引数が必須になります。
今回は「0」と「10」を渡しているので、「0」から「10」までの乱数が作られます。
randint関数もマイナス値を指定することが可能です。
開始値が終了値を超えていたら?
randint関数でも開始値が終了値を超えていた場合にはエラーになります。
import random
result = random.randint(30, 5)
print(result)
randrange関数と同様に、下記のようにエラーになります。
ValueError: empty range for randrange() (30, 6, -24)
randrange関数とrandint関数の違いは?
randrange関数とrandint関数の違いは下記です。
・randrange関数は終了値を含まない
randint関数はふたつの引数が必須ですが、randrange関数は終了値だけで使うことができました。
また、randint関数は終了値を含んだ乱数値を取得できますが、randrange関数では含みません。
終了値を含むか含まないかで選ぼう
今回はPythonで乱数を作る方法を解説しました。
終了値を含むかどうかで、どちらの関数を使うか選びましょう。
rangeint関数は2つの引数が必須なので、気をつけて使っていきましょう。
コメント