Lesson04 ランダム関数

イメージ画像

みんなのコードを見てみよう

  • import
  • ランダム関数

本日は、前回の演習で皆さんが書いたコードを紹介し、講評や添削を行います。

今使うソースコードはここからまとめてダウロードできます。 ダウンロードfile_download

前回の復習

前回はこれまでの復習を兼ねた演習回でした。

前回出た重要キーワード

  • if
  • else節
  • elif節
  • float型、小数の数字
  • 剰余、%演算子
  • 商を求める、// 演算子

わからない単語があればすぐに質問しよう!

1モジュールの使い方

この章のキーワード

  • import・・・・・モジュールを呼び出す呪文 
  • モジュール・・・便利な関数がまとまった集まりのこと。

python には、print や input のようにあらかじめ組み込まれた便利な関数があります。しかし、print や input だけでは実現できない機能もあります。そういった機能は、モジュールという機能がまとまったファイルに入っています。
モジュールとは、いわば python 上級者が作ってくれた便利な関数の集まりです。モジュールの中の関数は、input や print と違い、一度呼び出してからでないと使うことができません。

モジュールには、以下のような様々なものがあります。

日付を扱う関数や機能の集まり datetime
文字のパターンを扱う re
数学に関する関数を扱う math
グラフを描画する matplotlib
機械学習、いわゆるAIの機能を扱う sklearn

モジュールの呼び出し方

1 import モジュール名

今回は、数あるモジュールの中で1つだけ学びます。
それが、random モジュールです。これは、ランダムな数を作り出すモジュールです。
さらに、random モジュールの中には、randint や choice や shuffle や uniform などたくさんの関数が含まれています。

さて今日は、その中でも「 randint() 関数」を学びましょう。
これは次の書式で実行すると、A から B までの整数のうち、呼び出すたびに違う数を返してくれるのです。

import random
代入する変数 = random.randint(A,B)

実行するたびに、0 か 1 か 2 か 3 を表示するプログラム(lesson004_10.py)

 1
 2
 3
import random
num = random.randint(0,3)
print(num)

演習の時間

演習の解答はここからダウンロードできます。ダウンロードfile_download

演習1

第3回の【演習1】では、7 の倍数かどうかを判定するプログラムを作りました。
これを進化させましょう。
7 の倍数でないとき、「入力した数より大きくて最も近い 7 の倍数」を表示するプログラムを作って下さい。enshu004_01.pyの名前で保存してください。

期待される動作

7 の倍数であるかどうかを判定します。
6987654321 Enter を押す。
6987654321は7の倍数ではありません。
これより大きい一番近い 7 の倍数は9876543215です。

ヒント

「入力した数より小さくて最も近い 7 の倍数」を表示するプログラムはどうなりますか?

入力した数字 N 7で割ったあまり N%7 Nより小さくて最も近い7 の倍数 Nより大きくて最も近い 7 の倍数
100 2 98 105
101 3 98 105
102 4 98 105
103 5 98 105
104 6 98 105
105 0
seisuu seisuu%7 baisu_7_min baisu_7

baisu_7 、baisu_7_min がseisuuを使ってどのように書けるか考えてみましょう。

演習2

下記のようなような動作をするおみくじプログラムを作ります。このプログラムは、Enterを押すと、ランダムに次の 4 つのメッセージを表示します。

「やったね!大吉です!」
「なかなかいいよ。中吉です」
「いいよ、吉です。」
「がーん、凶です…明日があるさ」

enshu004_02.pyの名前で保存してください。

期待される動作

Enterを押してください
Enterを押す
やったね!大吉です!

ヒント

4つの数字にメッセージを対応させてみましょう。

演習3

演習2で作ったおみじくプログラムは、4つのメッセージがほぼ等確率で現れます。しかしそれではおみくじらしくありません。そこで、大吉は約 10 %の確率で、中吉は 35 %の確率で、吉は 50 %の確率で、凶は 5 % の確率で表示されるように改良を加えてください。
(ensyu004_03.pyの名前で保存してください。)

ヒント

出てくる乱数を 1 から 100 の範囲に設定し、その数字を大小比較します。