0
0

More than 1 year has passed since last update.

(小学生向け・Python)モジュールを使ってみよう

Last updated at Posted at 2022-08-23

フォートナイトのドラゴンボールコラボ、バリアツくね!?

ここんとこフォートナイトでかめはめ波ばっかり打ってるリッキーです。打っただけで満足するので、ビクロイ全然取れてません。かめはめ波のためにインゴット全部使い果たしました。

んなことたぁどうでもイイのよ!!

今日も元気にpythonやってきましょう!

Python の便利な機能を使い倒そう!

これを読んでるほとんどの人がpythonが最初に勉強する言語だと思うので、他のプログラミング言語を知らない人が多いと思います。他言語と比較したときのpythonのいいところは
・文法がシンプルで簡単
・プログラムの量が少なくて済む
などありますが、特にすごいポイントは
・pythonで用意されてる機能や、python用に作られている便利な機能がたくさんある
ことです。今回はpythonで使われる便利な機能のほんの一部を紹介していこうと思います。

Pythonにもとから備わってる標準機能=「モジュール」

pythonには、for文やif文などのプログラミングの基本的の機能以外に、便利な機能が用意されていますが、デフォルト(初期状態)では使えなくなっているものがいくつかあります。その代表的なものがrandom(ランダム)モジュールです。実際に書いて使ってみましょう。

randomモジュール

randomモジュールの他の機能① ランダムな少数の値(0-1)

0から1までのランダムな少数が表示されるプログラムです。ランダムであることを証明するために、わざとfor文で3回繰り返しています。

for i in range(3):
    print(random.random())

エラーがでる!?そんな馬鹿な!!
っていうのは冗談で、これには大事な一文が抜けています。pythonで用意されている便利なモジュールは、そのままでは使えません。「このモジュール使うよ!」と先に教えて上げる必要があります。

import 使いたいモジュールの名前

という一文を付け加える必要があります。import = インポート

import random
for i in range(3):
    print(random.random())

#実行結果(例):
0.5429376663235608
0.9329531739156705
0.0857588231014792

randomモジュールの他の機能② ランダムな整数の値

ランダムな数字を出したいとき、少数以外に整数を出したいときもありますよね?大丈夫、もちろんその機能も用意されてます。そう、pythonならね。(元ネタは検索してくれ!)

引数A以上 引数B以下のランダムな整数(A,Bともに整数)
random.randint(引数A、引数B)

import random

print(random.randint(0, 100))
print(random.randint(2, 10))
print(random.randint(200, 250))

これで簡単に、pythonでビンゴマシンが作れますね。試しに作ってみましょう。ビンゴマシンは、一度出てきた数字がまた出てきては困るので、重複のないランダムな数字のリストを作りましょう。今までやってきた内容が割りと総動員されているので、分からないところがあったら過去の教材 を見て復習しましょう。

import random

# a以上B以下の数字が10個はいった、ビンゴのあたり番号リストを作成
def bingo(a, b):
  number_list = [] # 空のリストを作成

  while len(number_list) < 10:     # リストの長さが10未満の場合ずっと繰り返す
    number = random.randint(a, b)  # a以上b以下のランダムな整数を一つ用意
    if not number in number_list:  # もしその整数がリストの中になかったら
      number_list.append(number)   # リストに追加
  return number_list               # 返り値としてnumber_listを返す

print(bingo(0, 20))

実行結果として、
[56, 9, 93, 78, 11, 59, 51, 38, 89, 2]
のような、要素の数が10の、重複がないリストになればOKです。重複しないのを確認するために、何回か実行してみましょう.
randomモジュールの機能はこれだけではありません。暇なひとはここを除いてみてはいかがでしょうか。(プロ用の公式ドキュメントなのでは?ってなるかもしれませんが、なんかいろいろあるんだな、みたいに思ってくれればと思います。)

ちょっと注目してほしいのは、 . =ピリオド の使い方です。大抵の場合、このピリオドは「の」と言い換えると、意味が通じます。random.randint()の場合は「randomモジュール『の』randint()メソッド」みたいな感じになります。

他のモジュールも見てみましょう。

datetimeモジュール:日付けに関するデータを扱うモジュール

ここでは細かい書き方を覚えたりしません。どうせ忘れるので。プログラミングで、基本文法はおぼえなくちゃダメですが、こういうモジュールの使い方などは、忘れることは全然悪いことではありません。なぜなら、こういうモジュールは流行りすたりがあったり、より素晴らしいモジュールが開発されて、今使われているモジュールが廃止されたりってことはよくあるからです。忘れた場合大事なのは、ネット上の情報などを正しく読んで、正しく理解して、正しく利用する力です。
ためしに、pythonでの今日の日付けの取得方法をググってみましょう。「python 日付 今日」とかって調べてみると、出てくるかも。

images.png

ググった?OK,では答えの一例を書きますね。

import datetime

today = datetime.date.today()
print(today.strftime('%Y-%m-%d'))

# 実行結果(例:2022年8月23日の場合):2022-08-23

ここで、もう一回ピリオドに注目しましょう。
上のコードでは、today という変数に、datetimeモジュール「の」date「の」today()メソッドを入れています。その下のprint文では、today「の」strftime() メソッドを使ったものを出力しています。
つまり、これは、
datetimeモジュール「の」date「の」today()メソッド「の」strftime()メソッド
を出力しているのと同じです。

import datetime

print(datetime.date.today().strftime('%Y-%m-%d'))

なぜ上のようにしないか分かりますか?例えば、先生が住んでいる八幡平市平舘というところを、東北を全然知らない沖縄の人に説明するとします。
「東北の岩手県の八幡平市の平舘の。。。」というように一気にまくしたてるのと、
「東北の岩手県ってわかる?そう、一番でっかい県!そこの端っこの方に八幡平っていう市があってさ。。。」と、段階を踏んで説明するのと、どちらがイケてる説明だと思いますか?
みなさん、イケてるプログラマーになりましょう。

他にもモジュールがたくさん!

いい機会なので、色々ググってみましょう。例えば、自分が生まれた日は何曜日だったかとか、pythonで出力する方法を調べてみましょう。あえて答えはここに書かないでおきますね!

ちょうどいいから↑宿題にしよ!よっしゃ今日のリッキーの仕事おわり!

ってことで今週の宿題よろしく!良いコードがあったら丸パクリでもいいけど、実際に動かしてみるのを忘れないで!

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0