連載
» 2021年07月09日 05時00分 公開

[Python入門]Hello Python:一番簡単なプログラムを作ってみようPython入門(2/3 ページ)

[かわさきしんじ,Deep Insider編集部]

もう少し難しいHello Worldプログラム

 次に以下のプログラムについて考えてみよう。

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

少し難しくなったHello Worldプログラム

 先ほどは1行のプログラムだったのが、今度は3行のプログラムになった。これをセルに入力して、実行すると次のようになる。

「input your name:」というメッセージと共にセルの下にテキストボックスが表示されるので、名前を入力して[Enter]キーを押す
「input your name:」というメッセージと共にセルの下にテキストボックスが表示されるので、名前を入力して[Enter]キーを押す
その下にHelloメッセージが表示される
その下にHelloメッセージが表示される

テキストボックスに何か名前を入力して[Enter]キーを押すと、Helloメッセージが表示される


 今度のプログラムは名前を聞いてくるので、ここでは「World」と入力しているが、何か適当な名前を入れれば「Hello 誰それ !」と答えてくれるようになっている。

 このプログラムでは、新しく次の要素が使われている。

  • input関数
  • 変数
  • 代入演算子
  • 結合演算子

 以下では、各行を順に見ながら、これらの要素とこのプログラムの動作について説明をしていく。

1行目:変数、input関数、代入演算子

 1行目のコードは次のようになっていた。

name = input('input your name: ')

変数、代入演算子、input関数

 この行は変数(name)、代入演算子(=)、input関数の3つの要素で構成されている。「=」の前後には空白文字が入っているが、これは入れても入れなくても構わない。ただし、コードが見やすくなるので入れた方がよいだろう。

 「変数」は「何かの値を取っておくための箱」のようなものだ。「何かの値に付けたラベル(名前)」といってもよい(「取っておく」ということは、後からそれを利用するということだ)。

変数は何かの値を取っておく箱のようなものや、何かの値に付けられたラベル(名前)と考えられる 変数は何かの値を取っておく箱のようなものや、何かの値に付けられたラベル(名前)と考えられる

 変数は何かの値を取っておくためのものなので、変数を使うときには、最初にその値を変数に保存しておく必要がある。そして、変数に「何かの値」を保存するには多くの場合、代入演算子を使う。Pythonでは「何かの処理を行う記号類」のことを「演算子」と呼び、その中でも「=」記号は代入を行うことから「代入演算子」と呼ばれる(実際には、Pythonでは何らかの値を変数などに代入する操作は「代入文」として規定されている。その最もシンプルな構文が「変数 = 代入する値」である)。

 このときには、代入演算子「=」記号の右側(右辺)の値が代入演算子「=」記号の左側(左辺)に代入される。つまり、「変数 = 何か」と書けば、代入演算子(=)の右辺の値が左辺の変数に「代入」される。右辺の「何か」が計算式や関数呼び出しであれば、その結果が代入されることにも注意しよう。例えば、「ans = 1 + 1」という文があったとすると、ans変数にはその計算結果である「2」が代入される。

変数への値の代入 変数への値の代入

 「代入」といったが、これは左辺の変数(ラベル)が右辺の値を参照するように結び付ける処理ともいえる。このことから、結び付けるという意味がよく分かる「束縛」と呼んだりもする。

 上のコードでは代入演算子の右辺にあるのは「input関数」の呼び出しだ。先ほど、関数は「引数に何かの値を渡すと、その値を基に何らかの計算を行い、その結果を返す」と述べたが、input関数は「引数に受け取ったメッセージを画面に表示して、ユーザーからの入力を受け取り、それを返す」という動作をする。

 これらの処理をまとめると次のようになる(ここではユーザーが「World」と入力したものとしている)。

「name = input('input your name: ')」で行っていること 「name = input('input your name: ')」で行っていること

 以上のことから、1行目で行っている処理を日本語にすると「input関数を呼び出して、ユーザーにメッセージを表示し、入力を受け取り、それをname変数に代入する」となる。変数に値を代入すると(この場合はinput関数によりユーザーから受け取った値)、その変数を介してその値を利用できる。これを行っているのが2行目だ。

2行目:文字列の結合

 2行目のコードは次のようになっていた。

message = 'Hello ' + name + ' !'

name変数を利用して文字列を結合しているコード

 今度はname変数とは別の「message」という名前の変数が出てきた。ただし、やっていることは「変数 = 何か」の基本形と同じであり、1行目と変わらない。つまり、このコードはmessage変数に「'Hello ' + name + ' !'」の「値」を代入しているということだ。

 'Hello 'と' !'は既に見た文字列だ。それ以外にあるのは、1行目で値を代入したname変数と2つの「+」記号だ。この「+」記号は先ほどの「=」演算子と同じく、Pythonの演算子の1つであり、文字列を「結合」したり、数値を「加算」したりするために使われる。ここでは、文字列を結合するためにこの演算子を使っている(そのため、「+」の左右に文字列を置く場合、これを「結合演算子」と呼ぶことがある。一方、「1 + 1」のように「+」の左右に数値があるときには、加算を行うので「加算演算子」と呼ぶことがある)。

 例えば、1行目でinput関数に対してユーザーが「World」と入力したとしよう。すると、name変数の値は'World'という文字列になる。その値は、プログラムコード中に「name」と書くことで利用できる。よって、「'Hello ' + name + ' !'」という式の値は次のようになる。

「'Hello ' + name + ' !'」の結果 「'Hello ' + name + ' !'」の結果

 これにより、message変数には'Hello World !'という文字列が代入される。このmessage変数を利用しているのが3行目だ。

3行目:実行の流れ(制御フロー)

 3行目のコードは次のようになっている。

print(message)

message変数の値を画面に表示

 message変数の値は既に見た通り、'Hello World !'という文字列であり、print関数にmessage変数を渡しているので、これが画面に表示されたというわけだ。

ユーザーが入力した「World」を利用して、「Hello World !」と表示された ユーザーが入力した「World」を利用して、「Hello World !」と表示された

 ここまで、少し難しくなったHello Worldプログラムの動作の解説と、そこで使われているプログラムの構成要素を取り上げてきたが、大事なことがもう1つある。それは「プログラムは上から下に順に実行される」ということだ。上から順に「ふんふん」と読めてしまうので、あまり気にしなかった人もいるだろうが、プログラムは「基本的」に上から下へと順に実行される。そして、プログラムがどのような順序で実行されるかを「実行の流れ」とか「制御フロー」などと呼ぶことがある。

プログラムは基本的に上から下へと順番に実行される プログラムは基本的に上から下へと順番に実行される

 最後により複雑なHello Worldプログラムを見てみよう。

ここまでのまとめ:変数、演算子

  • 変数は「何かの値を保存するもの」「何かの値に付けた名前」と考えられる
  • プログラムコードに変数を記述すると、その変数の「値」をその場所で利用できる
  • 演算子は「何らかの計算を行う記号類」のこと
  • 代入演算子「=」は「右辺の値を左辺(の変数)に代入」する
  • 結合演算子「+」は「文字列と文字列を結合」する
  • input関数は「ユーザーにメッセージを表示してから、入力を受け取り、それを戻り値」とする

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

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

メールマガジン登録

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