前回までは、printを使った文字列や計算結果の表示をしてみました。その一方で、前々回くらいには「一般的にプログラムは何らかの入力を受けて処理を行いその結果を出力するもの」と説明しました。
ということで、今回は入力を扱ってみましょう。
入力とは、その名の通り、プログラムに対して何らかの情報を伝えるものです。
一口に入力と言ってもいろいろありますが、ここではキーボードからの対話的な入力を取り扱います。
ちなみに、文字ベースで入力や出力を行うプログラムや環境を、CUI(Character User Interface)といいます。この対義語はGUI(Graphical User Interface)で、マウスやタッチ入力とボタンやウィンドウといった視覚効果での操作を行うものです。pythonでももちろんGUIのプログラムを作成することも出来ますが、CUIに比べたらやや敷居が高いため、まずはCUIからやっていきましょう。
まずは、入力された文字列をそのまま表示してみましょう。単純な内容ですが、正しく入力が出来ていることを確認するためにはよい題材です。ちなみにこうした処理のことをエコーバックと言います。
x = input()
print(x)
リスト 入力された文字列をそのまま表示する
コマンドプロンプトから実行すると、何も表示されるように固まったように見えますが、ここで好きな文字列を入力しましょう。
そして最後にEnterキーを押すことで入力が完了します。
図 コマンドプロンプトで実行した様子
もしpaiza.ioを使っている場合には、そのまま実行しても入力がないというエラーが出てしまいます。この場合には、あらかじめ画面下の「入力」タブに表示させたい文字列を表示しておきましょう。その後、プログラムを実行することで、同じように結果を得ることができます。
図 paiza.ioで入力タブに文字列を指定する様子
図 paiza.ioで文字列を表示させた様子
何も言わずに文字列を表示させたり、入力された文字列をそのまま表示するだけなのも素っ気ないですね。もう少し操作する人にやさしいものにしてみましょう(^^;)
#coding: utf-8
x = input("文字列を入力してください")
print("あなたが入力した文字列は", x, "です")
リスト 素っ気なくないプログラム
さて、先ほどのプログラムからいくつか変わったところがありますので、順番に見ていきましょう。
まず1行目ですが、これはプログラムの中で日本語を使う場合のおまじないです。このおまじないは、プログラムの1行目か2行目に書くことになっています。
なお、プログラムファイルを保存する場合にはUTF-8という文字コードで保存しましょう。(多くのテキストエディタであれば、ファイルを保存する時の文字コードを選択できる機能がついています。)
2行目は、input()の中に文字列が追加されています。inputで文字列を入力する前に、ここに指定した文字列が表示されます。
3行目は、print()の中が増えていますね。実は、print()の中にカンマ区切りで複数の値や変数を指定すると、それらを空白文字でつなげて表示してくれるのです。
さて、実行してみたらどうなったでしょうか。
図 実行してみた結果
ところで、input()で数字を入力することはできるのでしょうか?数字を入力できれば、何か計算をした結果を表示することができますよね。さっそく試してみましょう。
#coding: utf-8
x = input("数字を入力してください")
y = x * 3
print("3をかけた数字は", y, "です")
どうでしょうか?
2を入力してみたら、3をかけた数字として222が表示されました。
これは何かおかしいですね…
実は、input()は入力された文字列をそのまま文字列として返します。
日常生活においては見た目が同じようなものですが、プログラムの世界では文字列と数値はまったく別のものなのです。
このため、 2 という数値を入力したつもりでも “2” という文字列として扱われてしまったのです。
文字列の “2” にかけ算をすると、その文字列を繰り返したものになるんでしたよね。
さて、入力された数値を計算させるためには、プログラムでも数値として扱う必要があります。
そこで、文字列である “2” を数値の 2 に変換する処理を追加しましょう。
ここで使うのは int() という関数です。これは、整数として読めるような文字列を、数値として解釈して返してくれます。
つまり、文字列の “2” を与えると数値の 2 にしてくれるのです。
繰り返しになりますが、int()が処理できるのは整数として扱える数に限ります。実数(小数点を含むような数)ではfloat()という別の関数を使います。
#coding: utf-8
x = input("数字を入力してください")
y = int(x) * 3
print("3をかけた数字は", y, "です")
リスト 3倍を表示するプログラム(修正版)
今度はちゃんと計算も表示もできましたね。これで、ちょっとした計算が出来るプログラムができました。
問いかけの文字列や計算内容を変えることで、いろいろなことをさせることが出来ます。
正方形の辺の長さを入力すると面積を計算するプログラム、○○分と入力すると△△秒に変換してくれるプログラム、などいろいろ出来そうですね。あなたならどんなプログラムを作りますか?
- input()を使うことで、入力された文字列を受け取ることができる。
- input()の中に文字列を指定することで、問いかけの文章を表示することが出来る。
- input()では文字列しか受け取れないが、その文字列をint()で整数に変換することが出来る。
コメント