標準ライブラリとは、pythonに標準で用意されているモジュールのことです。
【この記事はこんな方に向けて書いています】
・pythonの標準ライブラリの使い方を勉強したい
・作成したリストからランダムな要素を取得したい
【目次】
・モジュールの読み込み
・random
・random.randint()
・random.randrange()
・random.random()
・random.uniform()
・random.choice()
・random.choices()
・random.sample()
・random.shuffle()
・まとめ
モジュールは、コードが書かれたファイルのことで、別のファイルに書いた関数を読み込んで使いたい場合は
import モジュール名
と記述して読み込むことで、別のファイルに書いた関数を使えるようになります。
モジュールについては、こちらの記事で簡単に解説していますのでよければご覧下さい。
上記の記事では、自分でモジュールを作り、モジュールを読み込んで関数を使う方法を解説しましたが、上述の通りpythonには標準で用意されているモジュールがあるので、それらのモジュールを読み込むことで、様々な関数を使うことができます。
ここでは、標準ライブラリの一つであるrandomモジュールについて解説します。
randomモジュールには、その名の通りランダムなデータを取得することができる関数が存在します。
まずはrandomモジュールを読み込みます。
import rondom
と記述することで、読み込むことができます。
randomモジュールのrandint関数は、指定範囲からランダムな数値を取得します。
#randint関数で1以上9以下のランダムな数値を取得:1以上9以下のランダムな数値を取得し、変数numberに格納します。
#出力:ランダムな数値の中で、2を出力しました。
randomモジュールのrandrange関数は、randint関数と同じく指定範囲からランダムな数値を取得しますが、指定範囲の最後の値は含みません。
#randrange関数で1以上9未満のランダムな数値を取得:1以上9未満のランダムな数値を取得し、変数numberに格納します。
#出力:9未満のランダムな数値の中で、8を出力しました。
randomモジュールのrandom関数は、0.0~1.0の範囲からランダムな小数を取得します。
randomモジュールのuniform関数は、指定範囲からランダムな小数を取得します。
randomモジュールのchoice関数を使うと、例えば作成したリストからランダムな要素を取得することができます。
#1~6月までのリストを作成:1~6月までのリストを作成し、変数monthsに格納します。
#choice関数でランダムな要素を取得:作成したリストからランダムな要素(2月)を取得しました。
randomモジュールのchoices関数を使うと、例えば作成したリストからランダムな要素を複数取得することができます。
作成したリストに対してchoices関数を使う場合は
random.choices(リスト名 , k = 取得したい要素数)
と記述します。
#1~6月までのリストを作成:上述と同じです。
#choices関数でランダムな要素を複数取得:作成したリストからランダムな要素を複数(2月・1月・1月)取得しました。ただ1月が重複して取得してしまいました。
randomモジュールのsample関数を使うと、choices関数と同じく、例えば作成したリストからランダムな要素を複数取得することができます。sample関数の場合は重複はありません。
#1~6月までのリストを作成:上述と同じです。
#sample関数でランダムな要素を複数取得:作成したリストからランダムな要素を複数(6月・1月・3月)取得しました。
このように、重複なしで要素を取得したい場合はsample関数を使います。
randomモジュールのshuffle関数を使うと、例えば作成したリストの要素配列をシャッフルすることができます。
#1~6月までのリストを作成:上述と同じです。
#shuffle関数でリストの要素配列をシャッフル:要素配列をシャッフルします。
#出力:要素配列をシャッフルして出力しました。
まとめ
・標準ライブラリとは、pythonに標準で用意されているモジュールのこと
・randomモジュールには、ランダムなデータを取得できる関数が存在する
・choice関数などを使うと、作成リストからランダムな要素を取得できる
ここまで読んで頂きありがとうございました。
-------------------------------------------------------------------------------------
当ブログの記事一覧(カテゴリー別)