ロジカ式logo

はじめての
Python

ページ一覧に戻る
Lesson13-1 乱数とモジュール
ロボた

「コンピューターが生成する、何が出てくるかわからない数値」のことを「乱数らんすう」というんだ!

「乱数」を使うと、サイコロやルーレットみたいなものを作ることができるよ!

ロボち
サイコロやルーレット

基本型

randomランダムモジュール

randomモジュール 基本型
ロボた

「乱数」を使うときには、「random」モジュールというのを読み込ませることが必要になるよ!

最初の「import random」で、「random」モジュールを読み込ませているんだ!

ロボち
randomモジュール 基本型
ロボた

「モジュール」というのは、Pythonのプログラムで利用できる、便利な道具みたいなものなんだ!

「random」以外にも、たくさんのモジュールが用意されているんだよ!
どんなモジュールがあるのか、興味があったら調べてみてね!

ロボち
ルーレット

使い方の例

📝1
「1~9」の間の中から、ランダムな整数値を一つ生成するプログラムです。
実行するたびに、ランダムな数値が生成されます。
同じ数値が続けて生成されることもありますが、確率は同じです。

ルーレットダーツ
EXAMPLE
import random num = random.randint(1, 9) print(num)
ロボた

「1~9」の間だから、「最小」は「1」で、「最大」は「9」になるね!

何度も実行して、ほんとうに「1~9」の間の数値が生成されているのを確かめてね!

ロボち

📝2
「1~100」までの間の中から整数値を一つランダムに生成し、生成された数値が偶数か奇数かを判定するプログラムです。

EXAMPLE
import random num = random.randint(1, 100) print("生成された数:", num) if num % 2 == 0: print("偶数です。") else: print("奇数です。")
ロボた

どんな数値が生成されるのか予測できないから、おもしろいゲームが作れそうだね!

どんなゲームが作れそうか、ちょっと考えてみてね!

ロボち

やってみよう

⌨️1
サイコロを振ったときの出た目によって、「当たり」または「はずれ」と表示するプログラムを、以下のコードの下に追加してください。
もし、出た目が「1」「2」「3」のときは「当たり」、それ以外の場合は「はずれ」と表示するようにしてください。

PRACTICE
import random num = random.randint(1, 6)

📖 解答例と解説

import random

num = random.randint(1, 6)
print("サイコロの目:", num)

if num <= 3:
    print("当たり")
else:
    print("はずれ")
ロボた

サイコロの目は「1~6」までだから、「最小は1」で「最大は6」だよ!

「当たり」と「はずれ」の判定をする条件文は、他にも考えられるから正しく判定できているなら、このとおりでなくても大丈夫だよ!

ロボち

⌨️2
コンピューターが生成した数を当てるゲームを作ってみましょう。
「1~20」の間でランダムに生成された数値と、キーボードから入力した整数値とを比べて、2つが「同じ」かそれとも「大きい」か「小さい」かを判定してください。

・2つの数値が「同じ」場合は、「おめでとう!正解です。ランダムに生成された数は〇〇でした。」と表示してください。
・入力した数値が「大きい」場合は、「残念!あなたの考えた数は大きいです。正解は〇〇でした。」と表示してください。
・入力した数値が「小さい」場合は、「残念!あなたの考えた数は小さいです。正解は〇〇でした。」と表示してください。

PRACTICE
import random #キーボードから整数値を入力 user_input = int(input()) #1~20の間でランダムな数値を生成

📖 解答例と解説

import random

#キーボードから整数値を入力
user_input = int(input())
#1~20の間でランダムな数値を生成
random_number = random.randint(1, 20)

#生成された数値と入力値を比較
if user_input == random_number:
    print("おめでとう!正解です。ランダムに生成された数は", random_number, "でした。")
elif user_input < random_number:
    print("残念!あなたの考えた数は小さいです。正解は", random_number, "でした。")
else:
    print("残念!あなたの考えた数は大きいです。正解は", random_number, "でした。")
ロボた

どうだった?うまく正解できたかな?

最小と最大の範囲を大きくしちゃうと、なかなか当たらなくなってしまって面白くなくなっちゃうから、たまに当たる程度にしておいてね!

ロボち

ロボた

これから、2つのサイコロを使ったゲームを作ろうと思っているけど、その前に複雑な条件文の作り方について学んでおいてほしいんだ!

そうすれば、もっと面白いゲームが作れるようになるからね!

ロボち
POINT
  •   「random」モジュールを使えば、指定した範囲の中からランダムな整数値を生成できる。