Pythonの勉強をしていて、このような悩みを抱えていませんか?
乱数の使い方が分からない…
この記事では、Pythonでの乱数の使い方について現役エンジニアが分かりやすく解説していきます。
他にも【Python入門】if文の使い方や【Python入門】for文の使い方で「if」や「for」について分かりやすく解説しているので、お時間がある方はご確認ください。
また、Pythonをもっと詳しく勉強したいという方は、【超厳選】20代におすすめのプログラミングスクール3選!を参考にしてください。
他にも無料でプログラミングスクールを受講したいという方は、【完全無料】0円で学べるプログラミングスクールを紹介【大学生向け】を参考にしてください。
乱数を生成する4つの方法を紹介
Pythonで乱数を生成する方法は、4通りあります。
それぞれ特徴があるので、押さえておきましょう。
乱数生成 | 特徴 |
---|---|
random.random() | 0.0以上1.0未満の浮動小数点数 |
random.uniform() | 任意の範囲の浮動小数点数 |
random.randrange() | 任意の範囲のステップごとの整数 |
random.randint() | 任意の範囲の整数 |
ここからは、それぞれの乱数生成関数について詳しく解説していきます。
random.random()
(0.0以上1.0未満の浮動小数点数)
0.0以上1.0未満の浮動小数点数(float型)の乱数を生成したい時には、random.random()を使用します。
random.random()の書き方は、以下の通りです。
random.random()
まずは、以下のコードをコピペして実行してください。
import random
# 乱数生成10回
for i in range(10):
print(random.random())
実行すると、次のような出力が得られます。
0.3585399694777368
0.7659463082007371
0.8105831604070028
0.46337369544904594
0.4078767764085818
0.6703092027202702
0.16283969243627183
0.686820654856212
0.7171946052921643
0.12223981728170319
出力結果を見ると分かるように、0.0以上1.0未満の浮動小数点数(float型)が生成されていることが分かります。
random.uniform()
(任意の範囲の浮動小数点数)
任意の範囲の浮動小数点数(float型)の乱数を生成したい時には、random.uniform()を使用します。
random.random()の書き方は、以下の通りです。
random.uniform(値1, 値2)
まずは、以下のコードをコピペして実行してください。
import random
# 乱数生成(10~20)
print(random.uniform(10, 20))
print(random.uniform(20, 10))
実行すると、次のような出力が得られます。
12.277257055159092
10.336599666908867
出力結果を見ると分かるように、任意の値(例コードでは10~20)の範囲の浮動小数点数(float型)が生成されていることが分かります。
例コードのように乱数を生成する値の範囲指定は、値1、値2のどちらに最小値、最大値を設定しても問題ありません。
また、値1、値2はfloat型でも問題ありません。
import random
# 乱数生成(1.234~5.678)
print(random.uniform(1.234, 5.678))
print(random.uniform(5.678, 1.234))
2.385374687510755
3.358522438564321
random.randrange()
(任意の範囲のステップごとの整数)
任意の範囲の値(int型)をステップごとに乱数を生成したい時には、random.randrange()を使用します。
random.randrange()の書き方は、以下の通りです。
random.randrange(開始値, 終了値, ステップ数)
まずは、以下のコードをコピペして実行してください。
import random
# 乱数生成(10から20まで2間隔で生成した値のうち1つの値を出力)
print(random.randrange(10, 20, 2))
実行すると、次のような出力が得られます。
14
出力結果を見ると分かるように、10~20まで2ステップずつ値を生成し、そのうち1つの値を出力します。
つまり、開始値が偶数、ステップ数が偶数の場合は、開始値から終了値までの偶数の値を出力します。
逆に、開始値が奇数、ステップ数が偶数の場合は、開始値から終了値までの奇数の値を出力します。
random.randint()
(任意の範囲の整数)
0.0以上1.0未満の浮動小数点数(float型)の乱数を生成したい時には、random.randint()を使用します。
random.randint()の書き方は、以下の通りです。
random.randint(開始値, 終了値)
まずは、以下のコードをコピペして実行してください。
import random
# 乱数生成(10から20までの整数)
print(random.randint(10, 20))
実行すると、次のような出力が得られます。
15
出力結果を見ると分かるように、10から20までの整数が生成されていることが分かります。
ただし、random.randint()の注意点として、終了値の値も出力するということです。
例コードで考えてみると、「20」の値も出力されるということになります。
【まとめ】乱数を生成する方法は4通り
乱数を生成する方法は、分かりましたか?
乱数生成 | 特徴 |
---|---|
random.random() | 0.0以上1.0未満の浮動小数点数 |
random.uniform() | 任意の範囲の浮動小数点数 |
random.randrange() | 任意の範囲のステップごとの整数 |
random.randint() | 任意の範囲の整数 |
この記事では、Pythonで乱数を生成する方法について紹介しました。
最後になりますが、私の体験談やみなさんの疑問に対して、できる限り分かりやすく記載したつもりです。ですが、もしここに関してもっと詳しく教えて欲しいときなどは、遠慮なく、お問い合わせ、コメント、Twitterにてご連絡ください。
最後までお読みいただきありがとうございました。