【Python】SimplePrograms line 2 名前を入力してみる
2行プログラムも続けてみましょう。
コード
name = input('What is your name?\n')
print ('Hi, %s.' % name)
実行結果
What is your name?
AyumiKatayama
Hi, AyumiKatayama.
解説
今回は「input」。
「input」は「キーを入力する」という関数です。
「name = input」と書けば、
「入力したキーを name に設定する」
という意味になります。
さらに、「name = input(xx)」の「xx」の部分は、キー入力を促すためのメッセージになります。
この「xx」の部分が画面に表示されてからキー入力待ち状態になりますので、入力してほしいことをメッセージとして伝えます。
今回の場合は「'What is your name?\n'」となっていますので、名前の入力を促していることになります。
「\n」は何でしょうか。
これは「改行コード」です。
そう言えば、「print」に「\n」がなかったな。
それはまた別に考えよう。
この「input」に「\n」がないと、実行結果はこうなります。
What is your name? AyumiKatayama
Hi, AyumiKatayama.
「What is your name?」「AyumiKatayama」が同じ行になるわけです。
改行などは通常の文字では表現できません。
そういうような「文字」では表現できないものを表示するために、特殊な記号があります。
「\n」もその一つです。
「\n」以外のものについては、また改めて書きましょう。
「What is your name?」が表示されたら、
「AyumiKatayama」と入力して「Enterキー」を押します。
そうすると「AyumiKatayama」という文字列が「name」に設定されることになります。
そして最後は「print」。
文字列「'Hi, %s.'」を出力します。
はて。
実行結果には「%s」が出力されていません。
それに、「print」の()の中にはそれ以外にもあります。
これです。
「% name」
「%s」というのは古くC言語からある表現で、「値を文字列であつかう」ということを意味します。
「出力する」ではなく「あつかう」と言ったのには理由があって、C言語の場合は入力の関数にも使われることがあるためです。
Python でも、そのうちに調べてみましょう。
「print」に戻りましょう。
「print ('Hi, %s.' % name)」は、
「文字列 Hi, %s. の %s に name をいれて表示する」
というプログラムになります。
今回の場合、「name」には「AyumiKatayama」が入っています。
ですから、
「Hi, %s.」の「%s」を「AyumiKatayama」に置き換えて、
「Hi, AyumiKatayama.」と表示されることになるわけです。
「'Hi, %s.'」のことを「書式指定」といいます。
この書式指定でいろいろな表示ができるのですけど、それはまたあらためて書きましょう。
間違いや改善方法などありましたら、是非是非コメントくださいませ。
この記事が気に入ったらサポートをしてみませんか?