連載
» 2019年04月05日 05時00分 公開

Python入門:Hello Python (3/3)

[かわさきしんじ,Deep Insider編集部]
前のページへ 1|2|3       

より複雑なHello Worldプログラム

 最後に示すHello Worldプログラムは次のようなものだ。

def helloworld():
    name = input('input your name: ')
    message = 'Hello ' + name + ' !'
    print(message)

helloworld()

より複雑なHello Worldプログラム

 先ほどは3行のプログラムだったが、今度は空行(改行だけして何もない行)を含めて6行のプログラムとなっている。これをやはり、セルに入力して、実行してみよう。

動作は3行のHello Worldプログラムと変わらない 動作は3行のHello Worldプログラムと変わらない

 実行すると、先ほどと同じく、セルの下に「input your name:」とメッセージと共にテキストボックスが表示されるので、例えばそこに「World」と入力すれば、「Hello World !」と表示される。これは3行のプログラムと変わらないが、ここでは以下の要素が追加されている。

  • 関数定義

 これまでにprint関数とinput関数を利用してきたが、関数は「プログラマーが自由に定義」できる。定義した関数は、print関数などと同様に呼び出しが可能だ(6行目)。

 では、このコードについて簡単に見ていこう。

関数定義

 このプログラムは大きく次の2つの部分に分かれている。

  • 関数定義
  • 関数呼び出し

 1行目から4行目が「関数定義」で、6行目が関数呼び出しだ。関数呼び出しについては、既にprint関数やinput関数を呼び出しているので、難しく感じることはないだろう。5行目の空行(改行コードだけで他に何もない行)は、コードが見やすくなるように入れているものだ(ここでは関数定義と関数呼び出しの区切りをハッキリとさせるために入れてある)。

関数定義と関数呼び出し 関数定義と関数呼び出し

 関数定義が1行目から4行目で行われていることがなぜ分かるかというと、1行目が「def」で始まり、2〜4行目が「インデント」(段付け)されているからだ。なお、先ほど「プログラムは基本的に上から下へと順番に実行される」と述べたが、これに従うと、このプログラムは「1〜4行目の関数定義を実行した後に、空行を素通りして、6行目の関数呼び出しを実行する」ようになっていることにも注意しよう。

 Pythonの関数は「def文」を使って定義する(「def」は「定義」を意味する「define」を省略して表記したものだ)。このプログラムでは1行目が「def」という「キーワード」で始まっていることから、このプログラムを実行する際に、Pythonが「お、関数定義が始まったぞ」と認識する。

 2〜4行目がインデントされているのは、それらの行が「def文で定義される関数で実際に行う処理」であることを意味している。Pythonはプログラム実行時にこのdefで始まる行の下にあるインデントされた部分を見て「お、2〜4行目が関数定義の本体だな」と判断する。

 一方、6行目はインデントがないので、これはdef文には含まれない(def文の先頭行と同じインデント幅、つまりインデントが全くないと認識される)。Pythonはプログラム実行時に6行目を見て「インデントが一段浅くなったので、関数定義は終わっていて、今度はhelloworld関数を呼び出すのだな」と判断するということだ。

関数を定義する「ブロック」はインデントで表現される 関数を定義する「ブロック」はインデントで表現される

 「def」に続いて書かれているのは「関数の名前」で、ここでは「helloworld」となっている。その後にかっこがあるが、ここには本来は「パラメーター」と呼ばれる、「関数呼び出し時に、呼び出す側が関数に渡す値を受け取る変数」を並べていく。ただし、今回はhelloworld関数は何も受け取らないので、かっこの中には何もパラメーターがない状態だ。このような「何も値を受け取らずに、何かの処理を実行する関数」も作成できることは覚えておこう。

 このdef文では、「『helloworld』という名前で、パラメーターを持たない関数」を定義している。既に述べたが、この関数が実行する処理が、インデントを付けられた2〜4行目のコードだ。これを「関数本体」「関数ボディー」と呼ぶことがある。

 ただし、2〜4行目のコード(関数本体)をよく見れば、3行のHello Worldプログラムと同じことが分かる(だから、3行のhelloworldプログラムと同じ動作をしている)。そのため、helloworld関数で行っている処理についての説明は不要だろう。6行目のhelloworld関数の呼び出しについても、何も値を渡さないのでかっこの中に何もないことを除けば、これまでと同様だ。

 ここでは、以下のことを覚えておけばよいだろう。

ここまでのまとめ:関数定義

  • 関数はプログラマーが自由に定義して、自由に呼び出せる
  • 関数はdef文で定義する
  • 関数が行う処理を「関数本体」「関数ボディー」などと呼ぶ
  • 関数本体はインデントを付けて書く


 今回は3つのHello Worldプログラムを書きながら、Pythonプログラムを構成する基本要素を見てきた。最後にその内容を簡単にまとめておこう。

  • 変数とは、何かの値を取っておくもの。または、何かの値に名前を付けたもの
  • 関数とは、何かの値を受け取り、その値を基に何かの処理を行って、処理結果を返すもの
  • 文字列とは、一つ一つの文字が連なったもの。プログラム実行時に何かのメッセージを表示するなどの目的で利用できる
  • 演算子とは、何らかの操作を行うための記号類
  • 演算子には、代入を行う演算子「=」や、文字列を結合する演算子「+」などがある

 Pythonを使ったプログラミングとは、これらの基本構成要素を組み合わせながら、プログラマーがコンピュータにさせたい処理を伝えるスクリプト(脚本)を書き上げていくことだ。

 今回はPythonプログラムを概観したが、次回は数値や加減乗除を行う演算子などについて見ていくことにしよう。

「Python入門」のインデックス

Python入門

前のページへ 1|2|3       

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。