【Python】"Hello,World !"を少し上等なものにして理解を深める
Python学習の第3弾。
変数などを使った少し上等な「Hello World !」を作成していき、理解を広めたいと思います。
少しだけ上等な「Hello World」プログラム
入力文字列を連結して結果表示させる
前回も作成した、一番単純な 「Hello,World」 を表示させるプログラムは以下のようになります。
1 |
print('Hello,world') |
これを少しずつ肉付けして行きたいと思います。
1 2 3 |
name = input('input your name: ') message = 'Hello ' + name + ', Welcome to Python world!' print(message) |
ということで、3行からなるプログラムを書きました。
この3行の中には、
- input関数
- 変数(name、message)
- 結合演算子(+ 記号)
三種類のプログラムとして重要な要素がこもっています。(あと代入するという意味の「=」演算子も使用されています)
プログラム経験者だとだいたい何をやっているのかはわかると思いますが、この3行のプログラムをは、入力された文字列とコード中に書かれている「Hello」と「!」を連結し、その結果を出力(print)するという内容となっています。
ひとまず上記3行のプログラムを(文字コードをUTF-8で) hello_input.pi として保存し、ターミナルから実行してみます。
最近インストールした「Visual Studio Code」を使用するとエディタ内にターミナルを起動させる事ができるので、そちらを使用して実行してみます。
余談ですがターミナル起動ののショートカットキーは以下となります。
Win : Ctrl+@
Mac : Ctrl+Shift+@
1 2 3 |
MacBook-Pro:hello toogie$ python3 hello_input.pi input your name: toogie Hello toogie, Welcome to Python world! |
「python3 hello_input.pi」と入力しプログラムを起動すると「input your name:」と表示され、入力待ちとなります。
文字列は何でも良いのですが、名前を聞かれたので「toogie」と入れてみます。
すると入力された toogie を含んだ、「Hello toogie !」が表示されました。
と、仕様どおりの動きで一安心。
「ユーザーにメッセージを表示してから、入力を受け取り、それを戻り値」とするinput関数が非常に単純で使いやすいのが良いですね。
どうでもいいですが、input()関数やprint()関数の終わりにセミコロンが無いのがなんとも気持ち悪い(苦笑)
関数を定義して「Hello World」してみる
では続いて表題にもある通り自作関数を定義し、最終的にその関数を呼び出して実行するというものを書いてみたいと思います。
1 2 3 4 5 6 |
def helloworld(): name = input('input your name: ') message = 'Hello ' + name + ', Welcome to Python world!' print(message) helloworld() |
核となるプログラムは先に書いたものと全く同じですが、こちらは自身で定義した関数である "helloworld関数" の中に内包されている形となっています。
「def」から始まるのが定義した関数となります。丸カッコの中には引数を設定することができますが、今回は引数は無いパターンの関数とします。
1行目 〜 4行目までが関数定義、飛んで6行目が関数呼び出しとなっています。
5行目の空行は単に読みやすくするために入れている空行です。
PHPerとしては関数定義する場合は波カッコを使って書きたいところですが、Python の作法では波カッコは使わないようです。
代わりにインデントで『ここからここまでが関数である』という判断をするのが Python とのこと。
『健全なプログラムはインデントから』という言葉の信奉者である私個人としてはインデントに関しては全く異存はありませんが、カッコやセミコロンが無いってのには慣れるのに少し時間がかかりそうです(苦笑)
とまぁそれはさておき、先ほどと同じように hello_def.pi として保存し、実行してみます。
1 2 3 |
MacBook-Pro:hello toogie$ python3 hello_input.pi input your name: toogie HHello toogie, Welcome to Python world! |
動きとしては先程のものと全く同じです。
動きは同じですが、自作の関数を定義し、その定義した自作関数をキックして動くという、動作のためのプロセスが違うという事となっています。
なるほどですね。