【Python】より複雑な「Hello World」を書こう
関数化してみる
def helloworld():
name = input('input your name:')
message = 'Hello'+ name + '!'
print(message)
# ここで実行
helloworld()
実行すると、さっきと同じく、「input your name:」とメッセージと共に入力欄が表示される。
例えば「World」と入力すれば、「Hello World!」と表示される。
関数定義
関数はプログラミングする人が自由に定義できる。
定義した関数はprint関数などと同様に呼び出し可能です。
では何が複雑になったのか?
関数定義
これまでにprint関数とinput関数を利用してきたが、関数は「プログラマが自由に定義できる」。
定義した関数は、print関数とおなじく、どこでも呼び出すことができる。
関数定義
このプログラムは大きく2つの部分にわかれています。
関数定義
関数呼び出し
関数定義がなぜわかるか?というと。
1行目~4行目の部分に目を向けてもらうと、1行目が「def」で始まり、2~4行目が「インデント」(段付け)されています。
def helloworld():
Pythonの関数は「def文」を使って定義します。
(defは「定義する」のdefineを省略します。)
このプログラムは1行目が「def」というキーワードで始まっていることから、このプログラムを実行する際には「お!関数だ」というぐらいの認識をします。
name = input('input your name:')
message = 'Hello'+ name + '!'
print(message)
2~4行目がインデントされているのは、それらが「def文で定義される関数で実際に行う処理」であることを意味しています。
Pythonはプログラム実行時にこのdefで始まる行の下にあるインデントされた部分は「関数の場所」というぐらいの認識をします。
helloworld()
6行目はインデントがないで、これはdefには含まれません。
Pythonプログラム実行時に6行目を見て「インデントがなくなったので、関数定義は終わっていて、関数呼び出し(helloworld)を行う」というぐらいの認識をします。
「def」に続いて書かれているのは「関数の名前」で、ここでは「helloworld」となっています。
その後にカッコ()があるので、ここには本来の「パラメータ」と呼ばれる、関数呼び出しに、呼び出す側が関数に渡す値(引数)を受け取る変数を並べていきます。
今回は、helloworld関数は何も受け取らないので、カッコの中には何もパラメータは設定をしません。
このdef文では「helloworldという名前で、パラメータを持たない関数」を定義していると述べましたが、
この関数が実行する処理が、インデントをつけられた2~4行目の処理になります。
これを「関数本体」「関数ボディ」と呼びます。
まとめ
関数はプログラムする人が自由に定義できる
関数はdef文で定義する
関数が行う処理を「関数本体」「関数ボディ」などと呼ぶ
関数本体はインデントをつけて書く
もっとPythonを学びたい人はこの本がおすすめです!
この記事が気に入ったらサポートをしてみませんか?