Pythonでランダムな数値を生成!randomモジュールの徹底活用術
Pythonでゲームを作ったり、シミュレーションを行ったり、あるいは単にランダムなデータが必要になったりすることはありませんか?そんな時に役立つのが、Python標準ライブラリの**randomモジュールです。この記事では、randomモジュールを使ってランダムな小数や整数を生成する方法**を、具体的な関数の使い方とコード例を交えて詳しく解説します。
🎲 random.random()で0.0以上1.0未満の小数を生成
最も基本的な乱数生成関数が**random.random()**です。これは、0.0以上1.0未満の範囲でランダムな浮動小数点数(小数)を生成します。
import random
# 0.0以上1.0未満の小数を生成
print(random.random())
📏 任意の範囲の小数を生成する
random.random()を応用することで、任意の範囲の小数を生成できます。例えば、aからbまでの範囲の小数を生成したい場合、以下の計算式を使います。
a + (b - a) * random.random()
import random
# 10.0から20.0までの小数を生成
min_val = 10.0
max_val = 20.0
random_float = min_val + (max_val - min_val) * random.random()
print(random_float)
🔢 random.randint()で指定範囲の整数を生成
特定の範囲内の整数を生成したい場合は、**random.randint(a, b)**が便利です。この関数は、a以上b以下のランダムな整数を返します(aとbの両方を含みます)。
import random
# 1から10までの整数を生成(1と10を含む)
print(random.randint(1, 10))
🚶 random.randrange()で柔軟に整数を生成
**random.randrange(start, stop, step)**は、Pythonのrange()関数に似た挙動で、より柔軟に整数を生成できます。
randrange(stop):0からstop-1まで
引数を一つだけ指定した場合、0からstop-1までの整数を生成します。
import random
# 0から9までの整数を生成
print(random.randrange(10))
randrange(start, stop):startからstop-1まで
二つの引数を指定した場合、startからstop-1までの整数を生成します。
import random
# 5から10までの整数を生成(5は含むが10は含まない)
print(random.randrange(5, 10))
randrange(start, stop, step):ステップを指定して生成
三つの引数を指定した場合、startからstop-1までの範囲で、step間隔で整数を生成します。
import random
# 0から10までの偶数を生成(0, 2, 4, 6, 8)
print(random.randrange(0, 10, 2))
💡 その他の便利な乱数生成関数
randomモジュールには、他にも便利な関数がいくつかあります。
random.choice():シーケンスからランダムに選択
リストやタプルなどのシーケンスから、ランダムに要素を一つ選び出します。
import random
# リストからランダムに選択
my_list = ['apple', 'banana', 'cherry']
print(random.choice(my_list))
random.shuffle():シーケンスをシャッフル
リストの要素をランダムな順序に並べ替えます(インプレースで変更されます)。
import random
# リストをシャッフル
cards = ['A', '2', '3', '4', 'J', 'Q', 'K']
random.shuffle(cards)
print(cards)
🧮 乱数のシードを設定する
乱数シードを設定すると、同じシード値からは常に同じ乱数列が生成されます。これは、デバッグや再現性のあるシミュレーションを行いたい場合に非常に便利です。
import random
# 乱数シードを設定
random.seed(42)
print(random.random()) # 実行するたびに同じ値が出力される
random.seed(42) # もう一度同じシードを設定
print(random.random()) # 上と同じ値が出力される
シードを設定しない場合、システム時刻などに基づいて自動的にシードが設定されるため、毎回異なる乱数列が生成されます。
まとめ
Pythonのrandomモジュールは、ランダムな小数や整数を生成するための強力なツールです。**random.random()で0.0〜1.0未満の小数、random.randint()やrandom.randrange()で指定範囲の整数、さらにrandom.choice()でシーケンスからの選択、random.shuffle()**でシーケンスのシャッフルが可能です。用途に合わせてこれらの関数を使いこなし、Pythonプログラムにランダム性を取り入れましょう!
■プロンプトだけでオリジナルアプリを開発・公開してみた!!
■AI時代の第一歩!「AI駆動開発コース」はじめました!
テックジム東京本校で先行開始。
■テックジム東京本校
「武田塾」のプログラミング版といえば「テックジム」。
講義動画なし、教科書なし。「進捗管理とコーチング」で効率学習。
より早く、より安く、しかも対面型のプログラミングスクールです。
<短期講習>5日で5万円の「Pythonミニキャンプ」開催中。
<月1開催>放送作家による映像ディレクター養成講座
<オンライン無料>ゼロから始めるPython爆速講座

