システム開発入門の第7週目では、これまでに学んだ変数、条件分岐、繰り返し、リスト、関数を組み合わせ、簡単なミニアプリを制作しました。第6週目に学んだPythonの関数と引数を土台に、複数の処理を一つの作品として動かす実習です。
今回の課題は、思いついた機能をそのまま書き始めるのではなく、プログラムを入力、処理、出力に分け、それぞれを関数として組み立てることでした。短いコードでも処理の役割を整理すれば、どこで何をしているのかを追いやすくなります。
関数を組み合わせるとは
関数とは、まとまりのある処理に名前を付け、必要な場所から呼び出せるようにしたものです。今回の授業では、作りたいプログラムの内容を紙に書き出し、必要な処理を関数ごとに分けてからコードにしました。
プログラムを「書く」授業から、「作る」授業に変わるのが今日。自分の頭の中にあるアイデアを形にしてみましょう。
田中先生
題材として提示されたのは、次の三つです。
- 名前を入力すると今日の運勢を表示する「簡易おみくじ」
- 質問への回答から性格タイプを示す「性格診断」
- 好きな数字に応じてメッセージを返す「数字占い」
題材が違っても、「情報を受け取る」「結果を決める」「画面に示す」という基本の流れは共通しています。この流れを分けて考えることが、関数を組み合わせる第一歩です。
ミニアプリを三つの役割に分ける
授業で扱ったおみくじアプリは、三つの関数で構成されています。各関数の役割を表にすると、コード全体の流れをつかみやすくなります。
| 役割 | 関数 | 行うこと |
|---|---|---|
| 入力 | 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)
コードが動く順番
get_name()を呼び出し、入力された名前を変数nameに保存します。draw_fortune()を呼び出し、運勢のリストから選ばれた結果を変数fortuneに保存します。show_result(name, fortune)に二つの値を渡し、名前と運勢をまとめて表示します。
戻り値は、関数が呼び出し元へ返す値です。このコードでは、return nameが入力された名前を返し、return random.choice(fortunes)が選ばれた運勢を返しています。最後の実行部が各関数を順番に呼ぶことで、三つの独立した処理が一つのミニアプリとして動きます。
条件分岐と繰り返しをどう使ったか
生徒たちは、おみくじ以外の題材にも既習内容を組み合わせました。性格診断では第3週目に学んだif文による条件分岐を使い、回答に応じて結果を切り替えました。複数の質問を順番に処理するときは、第5週目に学んだリストとfor文が役立ちます。
- 条件分岐で、回答に合った診断結果を表示する
- 繰り返しで、複数の質問を順番に処理する
- 回答に応じて点数を加え、最後に結果を示す
生徒たちは個人またはペアでコードを組み立て、ときどき相談しながら動作を確かめました。「関数がないと、たぶんごちゃごちゃになっていた」「1週目からやってきた内容が、全部つながってきた感じがする」という声からも、個別に学んだ要素を組み合わせる意味が見えてきます。
実習で確かめた三つの学び
- 処理を先に分ける:入力、判定、表示など、必要な役割を書き出してから関数にします。
- 関数名で目的を示す:
get_nameやshow_resultのように、何をする処理か分かる名前を付けます。 - 実行部で順番を組む:作成した関数を、利用者が操作する順番に呼び出します。
関数や条件分岐を組み合わせて「作品」を作ることは、システム開発の原点です。今日のコードはまだ短くても、考え方は本物です。自分の「アイデア」をプログラムにできたことが、何よりの収穫です。
田中先生
関数を使う目的は、コードを細かく分けることそのものではありません。アイデアを役割ごとの処理に置き換え、それらを正しい順番でつないで動かすことにあります。
次回はミニアプリ発表会
次回は、今回作ったミニアプリを発表し、「どんな工夫をしたか」「どのような処理があるか」をクラスで共有します。制作したコードを説明することで、書き手自身も処理の流れを整理できます。第8週目のミニアプリ発表会では、作る学びが伝える学びへ進みます。
この記事に関連する株式会社greedenの取り組み
ミニアプリづくりで学んだ「目的を処理に分け、順番に組み立てる」考え方は、実用的なアプリ開発にも通じます。株式会社greedenは、要望の整理から設計、実装、テスト、運用まで、アプリ開発を一気通貫で支援しています。

