琴葉茜

突然だけど、葵は「関数」って知ってる??

琴葉葵

数学で習った一次関数の「y=ax+b」のことなら知ってるよ!

琴葉茜

そうだね!一次関数の場合は「a」「b」の値が事前に設定されてて、「x」の値を決めると「y」の値を求められるって感じだね

琴葉茜

今回紹介する「関数」も「決まったルールで実行結果が返ってくる」って意味では同じような仕組みになってるんだよ

琴葉茜

...といっても、実はもう葵はプログラムで関数を使ってるんだけどね

琴葉葵

なん...だと...!?

琴葉茜

一番最初に使った「print()」「type()」、前回紹介した「input()」「open()」なんかが実は「関数」なんだよ

琴葉葵

英語の後に「()」が付いてるやつは関数なのかな?

琴葉茜

細かくいうと違う場合もあるけど、何らかの処理をするものは「()」がついてるって認識で良いよ!

琴葉葵

分かった!
これで関数の話はおしまい??

琴葉茜

むしろここからが本題で、今回はそんな関数の「作り方」についての紹介だよ!

解説画像1
琴葉葵

関数って作れるんだね!
ところで、ここに出てくる「引数」と「返り値」ってなに??

琴葉茜

「引数(ひきすう)」は関数に渡す情報のことで、「返り値」は関数の外に出す値のことだよ

琴葉葵

??????

琴葉茜

例えばジュースを作るミキサーがあって、そこにバナナを入れたらバナナジュース、リンゴを入れたらリンゴジュースになるでしょ?
この時ミキサーが「関数」とすると、「リンゴ」と「バナナ」は「引数」で、「リンゴジュース」と「バナナジュース」が「返り値」って感じだね

琴葉葵

なるほどね!「引数」は関数の材料で、「返り値」は完成品って感じだね

琴葉茜

そういうこと!
ちなみに「返り値」は「戻り値」と呼ばれたりもするよ

琴葉茜

とりあえず今回は「一次関数」を例に関数の作り方を見てみようか

解説画像2
琴葉葵

もし計算式を変えたいってなった時は「linear_function()」の中身を書き換えるだけで良くなるんだね!

琴葉茜

関数を使わなかった場合は何ヶ所も計算式を書き換えないといけないから間違えたり書き換え忘れたりしちゃうけど、その心配が減るのも良いよね!

琴葉葵

確かに...!

琴葉茜

ただ、関数を作る時は「メインのプログラムより前の行に作る」ってことには注意してね

琴葉茜

Pythonはプログラムを上から順に動かしていくから、関数を最後に作っちゃうと「そんな関数はない!」ってなっちゃうんだ

琴葉葵

結構重要...!!

琴葉茜

それと、「引数」「返り値(戻り値)」は無くても良いし、複数個でも良いのもポイントだよ

解説画像3
琴葉葵

結構柔軟に作れるんだね!

琴葉茜

関数は慣れるまで難しいかもしれないけど、使わないプログラムは無いってくらいよく使うからぜひ覚えておこうね!

琴葉葵

頑張る!!