関数を作ってみよう
関数(かんすう)は「名前のついたプログラムの部品」。今回は、同じあいさつを3か所に書く方法と、関数に1回だけ書く方法を比べます。あとから文章を直すとき、どちらがミスしにくいか確かめましょう。
🧠 できるようになること
defで関数を定義できる- 関数を呼び出せる
- 関数を使うと、修正する場所が1か所になると説明できる
🧰 用意するもの
- パソコン
- ブラウザ(Chrome / Edge / Safari)
- インターネット接続
- このページの「▶ このページで実行」ボタン(コードをそのまま動かせます)
- Trinket(予備の実行サイト:https://trinket.io/python)
🖼 できあがり
hello() を3回呼び出すと、2行のあいさつが3セット表示されます。文章を変えたいときは、関数の中だけを直せば全部に反映されます。
📺 実行結果
おはよう! 今日もPythonを楽しもう。 おはよう! 今日もPythonを楽しもう。 おはよう! 今日もPythonを楽しもう。
🚀 やりかた
- まず、2つの
printを3セット書く場合、文章の変更が何か所必要か考える。 def hello():の下に、2つのprintをインデントして書く。- インデントを戻し、
hello()を3回書いて呼び出す。 - 関数の中の「おはよう!」を「こんにちは!」に1回だけ直し、3セット全部が変わることを確かめる。
🐍 きょうのコード
Python
main.py
def hello():
print("おはよう!")
print("今日もPythonを楽しもう。")
hello()
hello()
hello()
このページの「▶ このページで実行」でそのまま動きます。Trinketを使うときは、上のコードをコピーして左のエリアに貼り付け、Runボタン(▶)を押します。
💡 きょうのポイント
def は関数を作る(定義する)合図、hello() は関数の中身を動かす(呼び出す)合図です。関数を作っただけでは中身は動きません。処理を1か所にまとめると、変更漏れを防げます。
🎮 チャレンジ
- 予想:
hello()をすべて消して実行すると、何が表示される? - 切り分け:
hello()をdef hello():より上に移すと、何というエラーが出る? エラー行を探そう - 応用:3行の自己紹介を表示する
profile関数を作り、2回呼び出そう
🔁 ふりかえり
- 関数を使わずに文章を3セット書くと、変更するときに何か所直す必要がある?
- 「定義」と「呼び出し」は、それぞれコードのどの部分?
- 関数を定義しただけで何も表示されないのはなぜ?
👨👩👧 おうちの人・先生へ
- 準備:なし。
- つまずきポイント:
defのあとのコロンとインデント忘れ。hello()のカッコ忘れ。 - 確認方法:関数内の文字列を1回変更し、3回分の出力がすべて変わることまで確認すると、再利用の価値が伝わります。
- 声かけ例:「何回使えるか」だけでなく、「直す場所が1つになるのが関数の強み」と伝えてください。