こんにちわ!前回は、中級内容として「append」 関数と処理速度について記述しました。さらに、配列にデータを追加するための、「extend」関数や「insert」関数にも触れました。
前回の記事
今回は、関数について学習していきましょう。
関数を利用するメリット
- 処理を分解できて、コードが見やすくなる
- 同じ処理を何度も記述する必要がなくなる
- 関数名で何をする処理なのかが明確になる
このようなメリットがあります。
とはいってもすでにたくさんの関数を学んできました。例えば、「print」関数などもその一つです。これから学んでいくのは、どんな処理を行うのかを自分達で定義していくものとしての関数です。実際に記述例を見ていきましょう。
プログラミングスクールに関しては下の記事で詳しく記述しています。
こちらで紹介しているスクールは、すべて無料期間がある優良なスクールのみで、特徴を明確にし、読者のニーズに絞って丁寧に解説しました。初めての一歩として、無料説明会に参加してみてください。
コンテンツ
Let’s practice a little!!
関数とは?
関数とは、何かしらの処理を行うための命令文です。
「print」 関数ならば出力を、「append」関数ならデータの追加を行うなどそれぞれ意味が決められています。今回学んでいくことは、それらの何かしらの処理を自分達で決めることです。難しそうに聞こえるかもしれませんが一度理解してしまえば、プログラミングを行うに当たって非常に便利で、コード全体がまとめられるので必須スキルとなっております!
頑張っていきましょう!
まずは最も簡単な例を見ていこう!
1 2 3 4 |
def nothing(): pass nothing() |
まずは、関数の定義の仕方を理解しましょう。
関数を定義するときは、「def 関数名(引数):」というように記述します。今回の関数名は「nothing」です。引数はなし。処理内容は「pass」と書かれていますが、これは何もしないということです。
関数を呼び出すときは、関数名を記述してあげれば実行されます。
これだとわけがわからないと思いますのでもう少し違った例を見てみましょう!
1 2 3 4 5 |
def Print(): print(1, 2, 3) Print() #1 2 3 |
今回の関数名は「Print」です。この関数では、数字を出力する処理内容となっています。
呼び出された関数が実行されているのがわかりますね!
次にもう少しレベルを上げましょう!
ユーザ定義型関数
1 2 3 4 5 6 7 8 9 10 11 12 13 |
def Print_Space(word): s = "" for i in range(len(word) - 1): s += word[i] + " " return s + word[-1] print(Print_Space("あいうえお")) #あ い う え お print(Print_Space("WordPress")) #W o r d P r e s s |
う~ん、難しい、、、
解説です。今回の関数名は「Print_Space」です。引数は文字列を想定しています。
具体的な処理内容は、各文字の間にスペースをいれるだけという簡単な内容です。
関数内の最後に「return」とありますが、これは、戻り値と呼ばれるもので、関数を呼び出した結果の値を返すたもの記述です。この例では、戻り値は、「s + word[-1]」となっています。
「s」には、文字列を一文ずつ参照して、参照した1文字とスペースを「s」に追加しています。
そして、最後には、引数の文字列の一番最後の文字を足し合わせたものを返しています。
その結果、このような出力になっていますね!
Let’s practice more!!
関数の利用
次はプログラムで四則演算を書いてみよう!
プログラムで四則演算は、式を書けば簡単に実装できてしまいますが、今回は関数の勉強ということで分かりやすい内容を取り組みたいと思います。それでは見ていきましょう!
1 2 3 4 5 6 7 8 9 10 11 |
def add(a, b): return a + b a = add(10, 1) b = add(3, 5) print(add(a, b)) #19 print(add(add(add(1, 2), 3), 4)) #10 |
このコードで理解したいのは、関数からの戻り値を変数に代入することが出来るということと、関数は何度でも再利用できるということです。今回の例では、関数はとても簡単な内容で短いですが、同じ処理を何度も行う場合には関数はとても便利な方法です。ぜひマスターしたいですね!
また、関数の中で、別の関数を呼び出す方法もあります。例を見てみましょう!
1 2 3 4 5 6 7 8 9 10 11 12 13 |
def a(): print("a") def b(): a() #関数「a」の呼び出し print("b") b() #関数「b」の呼び出し """ a b """ |
このように、複数の関数を利用すれば、複雑な処理を記述するときも、問題を細分化して考えることが出来るので、プログラマーにとっても関数はうれしいものです。
次回ももう少し関数について学習していきましょう!
Today’s final practice!!
まとめ
今回の記事では、ユーザ定義型の関数についての内容でした。
この記述法をマスターすることで、処理内容を細分化することができ、コード自体も大変見やすくなります。また、関数の中での変数を定義したり、関数だからこその便利な機能などもたくさんあります。
それらを知りたい場合は次回の記事を参照してみてください!
本日の理解度調査
今日の最後に理解度調査をします!!
どうすれば正しくなるのか考えてみてね!!
Q. フィボナッチ数列を完成させるための関数の中身を記述せよ。
フィボナッチ数列とは、「an = an-1 + an-2」で表される数列です。
ex) a3 = a2 + a1 = 3 + 5 = 8
1 2 3 4 5 6 7 8 9 10 11 |
l = [3, 5] def Fibonacci(index): num = ??? #ここに入れる式はなにかな? return num for i in range(5): l.append(Fibonacci(i)) print(l) |
正解は。。。
1 2 3 4 |
def Fibonacci(index): num = l[index] + l[index + 1] return num |
わかったかな??正解出来たら今回の項目は完璧だね!!