【Python】random関数の使い方を徹底解説!乱数を使ったサンプルコードつき!
randomはPythonのモジュールの1つであり、ランダムな数値の生成や配列オブジェクトにランダムな処理を加えるなど、ランダムで実行したい処理に使えるモジュールとなっています。
そのため、randomモジュールを使用することでいろいろな種類の乱数を生成することができます。
今回は下記の内容について解説していきます。
・randomとは
・randomの基本的な使い方
・randomを使った簡単なアプリ
目次
random関数とは
randomとは乱数を生成することができます。
乱数とは、数値がランダムに生成されることを言います。
1から10までの数の中から1つ乱数を生成する場合、何を出すかこちらでは指定できず、1から10までの数のうちどれか1つの整数が生成されます。
どこでrandomが使われているのかというと代表的なものだゲームでサイコロを降る時などです。
1から6の内こちらが数字を指定しても面白くないので、何が出るのか分からないようにするためにrandomで作成されています。
random関数の書き方
andomの構文は下記のようになります。
1 2 |
import random random.random() |
import randomと書くことで、randomモジュールがインポートされます。
インポートすることでrandomを使用することができます。
randomを使ったサンプルコード
例
1 2 3 4 5 6 |
import random num = random.random() num2 = random.random() print(num) print(num2) |
出力結果
0.059324731
0.397606905
numとnum2にはそれぞれランダムな数値が格納されています。
これは、実行するたびに値は変わりますので注意してください。
randomの基本的な使い方
1未満の浮動小数点数の乱数を取得
1未満の少数の乱数を取得するにはrandom.random()関数を使用します。
random.random()関数は「0.0以上1.0未満」の浮動小数点数の乱数を生成することができます。
1 |
random.random() |
例
1 2 3 4 5 6 7 |
import random num = random.random() num2 = random.random() print(num) print(num2) |
出力結果
0.427660034
0.447880372
指定した範囲の乱数を取得
指定した範囲の乱数を取得するにはrandom.uniform() 関数を使用します。
random.uniform() 関数は任意の範囲「開始値 <= n <=終了値」または
「終了値 <= n <= 開始値」のランダムな浮動小数点数を生成することができます。
1 |
random.uniform(開始値, 終了値) |
例
1 2 3 4 5 6 7 |
import random num = random.uniform(1, 10) num2 = random.uniform(5, -4) print(num) print(num2) |
出力結果
9.657262304
-2.748530017
指定した範囲の整数の乱数を取得
指定した範囲の整数の乱数を取得するにはrandom.randint()関数を使用します。
random.randint()関数は「開始値 <= n <= 終了値」のランダムな整数を作成することができます。
1 |
random.randint(開始値,終了値) |
例
1 2 3 4 5 6 7 |
import random num = random.randint(1, 50) num2 = random.randint(1, 50) print(num) print(num2) |
出力結果
9
30
リストなどの中身をランダムに取得
リストなどの中身をランダムに取得するにはrandom.choice()関数を使用します。
random.choice()関数はリストなどの値の中のどれか1つの要素をランダムに取得することができます。
1 |
random.choice(リストなど) |
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import random list = [1, 2 ,3 ,4 ,5, 6 ,7 ,8 ,9 ,10, 11, 12, 13, 14 ,15] list2 = ["あ", "い" ,"う" ,"え" ,"お",] num = random.choices(list) num2 = random.choices(list) str1 = random.choices(list2) ste2 = random.choices(list2) print(num) print(num2) print(str1) print(ste2) |
出力結果
[12]
[7]
[‘う’]
[‘い’]
リストなどの中身をシャッフルする
リストなどの中身をシャッフルするにはrandom.shuffle()関数を使用します。
random.shuffle()関数とは()中のリストなどの要素をシャッフルすることができます。
1 |
random.shuffle(リストなど) |
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import random list1 = [1, 2 ,3 ,4 ,5, 6 ,7 ,8 ,9 ,10, 11, 12, 13, 14 ,15] list2 = ["あ", "い" ,"う" ,"え" ,"お",] random.shuffle(list1) print(list1) random.shuffle(list2) print(list2) random.shuffle(list1) print(list1) random.shuffle(list2) print(list2) |
出力結果
[3, 14, 13, 6, 9, 7, 10, 11, 4, 8, 15, 5, 2, 1, 12]
[‘え’, ‘お’, ‘い’, ‘う’, ‘あ’]
[9, 11, 12, 8, 5, 13, 1, 14, 2, 7, 15, 3, 6, 4, 10]
[‘お’, ‘い’, ‘あ’, ‘う’, ‘え’]
乱数の初期化を行う
乱数を初期化するには、random.seed()を使います。
引数を省略すると、毎回異なる値が生成されますが、引数を任意の数値に固定すると、毎回同じ値が生成されます。
1 |
random.seed(数字) |
seed()の引数を無しにすると毎回異なる値が出力されるようになります。
例
1 2 3 4 5 |
import random for i in range(5): random.seed(1) print(random.randint(0, 100)) |
出力結果
17
17
17
17
17
38
36
12
93
73
randomを使った作品
おみくじアプリ
randomを使っておみくじのアプリを作成すると下記のようなコードになります。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
import random luck = ["大吉", "中吉" ,"小吉" ,"末吉" ,"凶", "大凶"] luck_this = random.choice(luck) print("おみくじの結果は。" + luck_this + "です。") if luck_this == "大吉": print("今日はいいことが起こりそうです。") elif luck_this == "中吉": print("今日はまあまあいいことが起こりそうです。") elif luck_this == "小吉": print("今日は何かいいことがあるかもしれません。") elif luck_this == "末吉": print("今日はいつも通りでしょう。") elif luck_this == "凶": print("今日は少し気をつけましょう。") else: print("外出するのはやめましょう。") |
出力結果
おみくじの結果は。小吉です。
今日は何かいいことがあるかもしれません。
このように簡単なおみくじのアプリを作成することができます。
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。