Pythonで0から9までのランダムな整数を生成する方法
Pythonでランダムな整数を生成したい場面は多くあります。例えば、サイコロのシミュレーション、くじ引き、テストデータの作成などが挙げられます。この記事では、標準ライブラリの random モジュールを使って、0から9までの範囲でランダムな整数を生成する方法を解説します。
randint() 関数を使う基本方法
random モジュールに含まれる randint() 関数は、指定した範囲内(両端を含む)からランダムな整数を1つ返します。0から9までのランダムな整数を取得するには、引数に 0 と 9 を指定します。
>>> import random >>> random.randint(0, 9) 0 >>> random.randint(0, 9) 5 >>> random.randint(0, 9) 6 >>> random.randint(0, 9) 8
実行するたびに異なる値が返されることがわかります。randint(a, b) の第1引数 a は範囲の最小値、第2引数 b は最大値であり、両方の値も結果に含まれる点に注意してください。
randrange() 関数を使う方法
同じ random モジュールには randrange() 関数もあります。こちらは終了値を含まない点が randint() と異なります。
>>> import random >>> random.randrange(10) # 0以上10未満の整数 7
0から9までの整数を得たい場合は、randrange(10) のように書きます。ステップ(刻み幅)を指定することも可能です。
複数の乱数を一度に生成する
リスト内包表記を使えば、複数のランダムな整数をまとめて生成できます。
>>> import random >>> [random.randint(0, 9) for _ in range(5)] [3, 8, 1, 8, 4]
セキュリティ用途の場合の注意点
random モジュールの乱数は予測可能性があるため、パスワードやトークンの生成などセキュリティが重要な用途には適していません。そのような場合は、暗号学的に安全な secrets モジュールを使用しましょう。
>>> import secrets >>> secrets.randbelow(10) # 0以上10未満の安全な乱数 6
まとめ
- 0〜9のランダムな整数には
random.randint(0, 9)を使う(両端を含む)。 random.randrange(10)でも同様の結果が得られる(終了値を含まない)。- セキュリティ目的なら
secrets.randbelow(10)を推奨。
用途に応じて適切な関数を選び、効率的に乱数を活用してください。
-
BokehとPythonを使って垂直棒グラフを可視化する方法
Bokehは、データの可視化を支援するためのPythonパッケージであり、オープンソースプロジェクトとして公開されています。BokehはHTMLとJavaScriptを使ってプロットを描画するため、Webベースのダッシュボードを作成する際に特に有用です。BokehはNumPyやPandasなど、他のPythonパッケージと簡単に組み合わせて使用でき、インタラクティブなプロットやダッシュボードなどを生成することができます。BokehはデータソースをJSONファイルに変換します。このJSONファイルは、JavaScriptライブラリであるBokehJSへの入力として使われます。BokehJSはTy
-
PythonとMatplotlibで複数のプロットを1つの図に描画する方法
Matplotlibは、データ可視化のために広く利用されている人気のPythonパッケージです。データの可視化は非常に重要なステップです。生の数値を目で追ったり複雑な計算を実行したりしなくても、データの中で何が起きているのかを直感的に把握できるようになるからです。また、定量的な洞察を聴衆に対して効果的に伝える手段としても役立ちます。Matplotlibは、データをもとに2次元のプロットを作成するために使われます。オブジェクト指向のAPIを備えており、Pythonアプリケーションへプロットを簡単に組み込むことができます。IPythonシェル、Jupyter Notebook、Spyderなどの開