Python

Pythonで乱数を扱うrandomモジュールの使い方について

By 2021年3月15日No Comments

この記事はPythonで乱数を扱う標準ライブラリのrandomモジュールについて説明します。

randomモジュールはランダムに配列を取得することができます。乱数とは任意の数字を出力したり取り出したりして扱う数値のことです。 

Udemyの動画学習でもPythonを勉強しよう!

「平日の夜の勉強会には時間が間に合わなくて参加できない」「通勤時間のわずかな隙間時間を勉強時間にあてたい」「本ではよく分からないところを動画で理解を深めたい」そんなあなたはUdemyの動画学習がお勧めです!

UdemyのPythonおすすめ33講座レビューリスト

まずはrandomをモジュールをインポートします。

import random

Pythonのrandom関数を使って乱数の値をランダムに取得する方法

random( )関数は0.0以上1.0未満の浮動小数点数のfloat型の乱数を取得することができます。random.random( )関数は、構文は下記になります。

random.random( )

import random
number = random.random()
print(number)

結果:

0.2725251184805223

実行するたびに出力結果はランダムに値は変わっていきます。

さらに数値の範囲を指定して乱数をランダムに取得する場合はrandom.uniform( )関数を使用します。構文は下記になります。

random.uniform(開始値, 終了値)

number = random.uniform(1,5)
print(number)

結果:

2.0099887298100265

uniform( )は開始値から終了値までの指定した数値の範囲内で浮動小数点数をランダムに取得する事ができます。

Pythonのrandom関数で指定した範囲の整数の乱数をランダムに取得する方法

random.randint関数は引数に開始値と終了値を指定してランダムに整数の値を取得することができます。構文は下記になります。

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

number = random.randint(1,5)
print(number)

結果:

9

指定した範囲内の整数をランダムに取得するにはrandrange( )関数を使います。開始値以上から終了値未満の値をランダムで取得できます。引数の値には整数しか指定できません。randrange()関数はステップを指定することも可能です。構文は下記になります。

randrange(開始値, 終了値, ステップ値)

ただし引数の開始値とステップ値は省略できます。

まずは終了値を10未満で値を指定しました。

print(random.randrange(10))

結果:

3

次に開始値と終了値を指定しました

print(random.randrange(3, 10)) 

結果:

4

さらに、開始値と終了値とステップを指定しました。

print(random.randrange(3, 10, 2))

結果:

7

このようにrandrange( )関数を使うと指定した範囲を整数で毎回ランダムに値を取得する事ができました。

Pythonのrandom関数を使って配列内の文字列をランダムに扱う方法

リストなどの配列内の要素をランダムに取得するにはrandom.choice( )関数を使用します。ランダムに配列の要素を一つ取得する事ができます。構文は下記になります。

random.choice(リストなど)

name = ["ヤマダ" ,"タナカ" ,"ウエダ"]
print(random.choice(name))

結果:

タナカ

配列であるリストからランダムに要素を一つ取得することができました。

random.shuffle( )関数を使うと配列の中身の要素をランダムに並び替える事ができます。引数に指定した配列が変更されることになります。構文は下記になります。

random.shuffle(配列)

name = ["ヤマダ" ,"タナカ" ,"ウエダ"]
random.shuffle(name)
print(name)

結果:

['タナカ', 'ヤマダ', 'ウエダ']

shuffle( )関数で配列のオブジェクト内の要素をランダムに並び替えをすることができました。

先程、整数の値を取得したrandom.randint( )関数でも文字列をランダムに取得することができます。

name = ["ヤマダ" ,"タナカ" ,"ウエダ"]
name_select = random.randint(0,2)
print(name[name_select])

結果:

ウエダ

乱数を取得してリスト内のインデックス番号の0から2の値の範囲を指定してランダムにその範囲内の値を返しています。このようにrandiant( )関数は文字列を取得する事もできます。

Pythonのrandom関数を使って配列内の要素を指定した回数だけランダムに取得する方法

sample( )は乱数の配列の要素を指定した回数だけランダムに取得することができます。sample( )の引数に「k=」と指定するとサンプル数の数だけランダムに要素を取得できます。構文は下記になります。

sample(配列, k=サンプル数)

number = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
num_select = random.sample(number, k=7)
print(num_select)

結果

[1, 10, 3, 5, 7, 2, 4]

要素を重複せずに取得することができました。ただしsample( )は1度取得した要素を重複して要素を取得できないので引数「k=」に要素数より多くの数値を指定する事はできません。

choices( )関数はsample( )と指定方法などは同じですが要素の重複して取得することができます。構文は下記になります。

choices(配列, k=サンプル数)

number = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
num_select = random.choices(number, k=7)
print(num_select)

結果:

[2, 1, 4, 10, 3, 1, 3]

要素が重複されて取得されています。sample( )と違い「k=」の値が配列内の要素数より大きくなっても重複を許すのでエラーは起きることがありません。

まとめ

この記事ではPythonの乱数を扱う標準ライブラリであるrandomモジュールを使った様々な乱数や文字列をランダムに並び替えたり取得する方法についてでした。以上、Pythonで乱数を扱うrandomモジュールの使い方についてでした。

Udemyの動画学習でもPythonを勉強しよう!

「平日の夜の勉強会には時間が間に合わなくて参加できない」「通勤時間のわずかな隙間時間を勉強時間にあてたい」「本ではよく分からないところを動画で理解を深めたい」そんなあなたはUdemyの動画学習がお勧めです!

UdemyのPythonおすすめ33講座レビューリスト

HOSL

Author HOSL

More posts by HOSL