サイトアイコン IT & ライフハックブログ|学びと実践のためのアイデア集

【授業レポート】システム開発入門 第7週目:Pythonの関数を組み合わせてミニアプリを作る

woman wearings coop neck floral top using her apple brand macbook

Photo by JÉSHOOTS on Pexels.com

システム開発入門の第7週目では、これまでに学んだ変数、条件分岐、繰り返し、リスト、関数を組み合わせ、簡単なミニアプリを制作しました。第6週目に学んだPythonの関数と引数を土台に、複数の処理を一つの作品として動かす実習です。

今回の課題は、思いついた機能をそのまま書き始めるのではなく、プログラムを入力、処理、出力に分け、それぞれを関数として組み立てることでした。短いコードでも処理の役割を整理すれば、どこで何をしているのかを追いやすくなります。

関数を組み合わせるとは

関数とは、まとまりのある処理に名前を付け、必要な場所から呼び出せるようにしたものです。今回の授業では、作りたいプログラムの内容を紙に書き出し、必要な処理を関数ごとに分けてからコードにしました。

プログラムを「書く」授業から、「作る」授業に変わるのが今日。自分の頭の中にあるアイデアを形にしてみましょう。
田中先生

題材として提示されたのは、次の三つです。

  1. 名前を入力すると今日の運勢を表示する「簡易おみくじ」
  2. 質問への回答から性格タイプを示す「性格診断」
  3. 好きな数字に応じてメッセージを返す「数字占い」

題材が違っても、「情報を受け取る」「結果を決める」「画面に示す」という基本の流れは共通しています。この流れを分けて考えることが、関数を組み合わせる第一歩です。

ミニアプリを三つの役割に分ける

授業で扱ったおみくじアプリは、三つの関数で構成されています。各関数の役割を表にすると、コード全体の流れをつかみやすくなります。

役割 関数 行うこと
入力 get_name() 利用者に名前の入力を求め、入力された名前を返す
処理 draw_fortune() 運勢のリストから一つを選び、その結果を返す
出力 show_result() 名前と運勢を組み合わせて画面に表示する

一つの関数に一つの役割を持たせると、関数名を見るだけでも処理の目的を予想できます。入力方法や表示内容を変えたいときも、確認する場所が分かりやすくなります。

おみくじアプリのコード

import random

def get_name():
    name = input("あなたの名前を入力してください:")
    return name

def draw_fortune():
    fortunes = ["大吉", "中吉", "小吉", "凶"]
    return random.choice(fortunes)

def show_result(name, result):
    print(name + "さんの運勢は…「" + result + "」です!")

# 実行部
name = get_name()
fortune = draw_fortune()
show_result(name, fortune)

コードが動く順番

  1. get_name()を呼び出し、入力された名前を変数nameに保存します。
  2. draw_fortune()を呼び出し、運勢のリストから選ばれた結果を変数fortuneに保存します。
  3. show_result(name, fortune)に二つの値を渡し、名前と運勢をまとめて表示します。

戻り値は、関数が呼び出し元へ返す値です。このコードでは、return nameが入力された名前を返し、return random.choice(fortunes)が選ばれた運勢を返しています。最後の実行部が各関数を順番に呼ぶことで、三つの独立した処理が一つのミニアプリとして動きます。

条件分岐と繰り返しをどう使ったか

生徒たちは、おみくじ以外の題材にも既習内容を組み合わせました。性格診断では第3週目に学んだif文による条件分岐を使い、回答に応じて結果を切り替えました。複数の質問を順番に処理するときは、第5週目に学んだリストとfor文が役立ちます。

生徒たちは個人またはペアでコードを組み立て、ときどき相談しながら動作を確かめました。「関数がないと、たぶんごちゃごちゃになっていた」「1週目からやってきた内容が、全部つながってきた感じがする」という声からも、個別に学んだ要素を組み合わせる意味が見えてきます。

実習で確かめた三つの学び

関数や条件分岐を組み合わせて「作品」を作ることは、システム開発の原点です。今日のコードはまだ短くても、考え方は本物です。自分の「アイデア」をプログラムにできたことが、何よりの収穫です。
田中先生

関数を使う目的は、コードを細かく分けることそのものではありません。アイデアを役割ごとの処理に置き換え、それらを正しい順番でつないで動かすことにあります。

次回はミニアプリ発表会

次回は、今回作ったミニアプリを発表し、「どんな工夫をしたか」「どのような処理があるか」をクラスで共有します。制作したコードを説明することで、書き手自身も処理の流れを整理できます。第8週目のミニアプリ発表会では、作る学びが伝える学びへ進みます。

この記事に関連する株式会社greedenの取り組み

ミニアプリづくりで学んだ「目的を処理に分け、順番に組み立てる」考え方は、実用的なアプリ開発にも通じます。株式会社greedenは、要望の整理から設計、実装、テスト、運用まで、アプリ開発を一気通貫で支援しています。

モバイルバージョンを終了