注目キーワード

【Python】Pythonでランダムな整数を生成する方法(randint・randrange)

はじめに

Pythonの学習を指定てランダムな整数の出力方法が分からなかったので「random」モジュールについて調べてまとめてみました。実は「random」モジュールの「random」はランダムな0.0~1.0の浮動小数点の値を返すそうで、ランダムな整数が欲しい場合は、「randint」を使うそうです。

この記事ではランダムな値を返してくれる関数にフォーカスを当てて、「random」、「randint」、「randrange」の使い方についてサンプルソースを使いながら説明していきたいと思います。

対象レベル

Pythonの環境設定が整っており、Pythonの基本構文が理解出来ること。

詳しくは「【Python入門】〜初級編〜環境構築・基本構文まとめ」にまとめてあります。興味のある方はご覧ください。

通常のrandom

まず初めに、「random」関数について説明していきたいと思います。「random」関数を使うためには「random」をインポートして使う必要があります。

「random.random()」と記述することにより「0.0~1.0」のランダムな値を返してくれます。

import random
random.random()

下のサンプルソースでは、ランダムな値を10回出力するプログラムを作ってみました。

実行結果は、以下になります。ランダムな数字が10回出力されています。

sample_random.pyを実行

ランダムな整数を生成する方法(randint)

次に、本題のランダムな整数を出力するプログラムです。

「randint」は以下のように開始の値と修了の値を指定することによって、指定された範囲のランダムな整数を得ることが出来ます。

ちなみに得られる値は、「開始 <= ランダムな整数 <= 終了」と指定した開始と修了の値を含みます。

import random
random.randint(開始, 終了)

以下のソースでは、1~10までの整数を10回出力するプログラムになっています。

それでは、動かしてみましょう。

実行結果をランダムな整数が出力されていますね、1回目は10が出力されなかったので、2回目も動かしてみました。2回目は「10」が出力されていますね。つまり、指定した値も含まれていることが分かりました。

スポンサーリンク

sample_randint.pyを実行(1回目)
sample_randint.pyを実行 (2回目)

範囲と間隔を指定 してランダムな整数を生成する方法(randrange)

最後に「randrange」の使い方を説明します。個人的には「randrage」を使えば「randint」は使わなくていいんじゃないかなと思います。

「randrane」の使い方は以下のようになっていて、他の関数同様に「random」をインポートする必要があります。関数の呼び出し方は「random.randrange(開始, 終了, 間隔)」で呼び出せます。

import random
random.randrange(開始, 終了, 間隔)

以下のサンプルソースでは、5~50までの5で割り切れる整数が出力されます。

実行結果は以下になります。

sample_randrange.pyを実行

引数が1つの場合

「randrange」の引数は省略も可能で引数が一つの場合は終了を指定し、開始が「0」間隔が「1」で実行されます。

import random
random.randrange(0, 終了, 1)

下のソースで言うと、0~50の整数(間隔は1)が出力されます。

出力結果が以下になります。

sample_randrange_1.pyを実行

引数が2つの場合

また、引数を二つ指定する場合は、開始と修了が指定され、間隔は1のランダムな整数が出力されます。

import random
random.randrange(開始, 終了, 1)

下のサンプルソースでは、40~50のランダムな整数が出力されることが予想されます。

実行結果をみると想定通りで39以下の整数は出力されていませんね。

sample_randrange_2.pyを実行

まとめ

ランダムな値を求めるときは「 random.random() 」を使う。この時は0.0~1.0未満の浮動小数点数が得られる。

ランダムな整数を求めるときは、「 randint 」を使う。使い方は「random.randint(開始, 終了)」。

間隔を指定したいときは、「 randrange 」を使う。使い方は「random.randrange(開始, 終了, 間隔)」。

最新情報をチェックしよう!