見出し画像

【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を学びたい人はこの本がおすすめです!


この記事が気に入ったらサポートをしてみませんか?