#4 Pythonで学ぶ標準入力の基本
プログラムが利用者からの入力を受け取る仕組みを「標準入力」と呼びます。この記事では、Pythonで利用者にキーボードから文字を入力してもらう方法について解説します。
input()で入力を受け取る
Pythonでは、input()という機能を使うだけで、利用者の入力を受け取れます。
name = input("名前を入力してください: ")
print("こんにちは、" + name + "さん")
プログラムを実行すると、括弧の中に書いたメッセージが表示され、利用者がキーボードで文字を入力してEnterキーを押すと、その内容が変数に格納されます。
入力された値は常に文字列
ここで注意したいのが、input()で受け取った値は、たとえ数字を入力しても、必ず「文字列」として扱われるという点です。数値として計算に使いたい場合は、int()やfloat()を使って型を変換する必要があります。
age = int(input("年齢を入力してください: "))
print(age + 1)
変換に失敗するとエラーになる
int()で変換しようとした際に、利用者が数字ではない文字(例えば「二十歳」など)を入力すると、プログラムはエラーで停止してしまいます。以前の記事で触れたtry・exceptと組み合わせると、想定外の入力にも安全に対応できます。
try:
age = int(input("年齢を入力してください: "))
except ValueError:
print("数字を入力してください")
複数の値をまとめて受け取る
スペース区切りで複数の値が入力される場合は、split()で分割してから、それぞれを変換します。
line = input("2つの数値を入力してください: ") # 例: "3 5"
a, b = map(int, line.split())
print(a + b)
map(int, ...)は、分割した文字列のリストすべてにintを適用する、Pythonでよく使われる書き方です。
Pythonならではの注意点
input()の括弧の中に案内メッセージを書けるのはPythonの手軽さのひとつですが、逆にメッセージを書き忘れると、利用者は何も表示されない画面でただ入力を待つことになります。何を入力すればよいか、必ずメッセージで伝えるようにしましょう。
まとめ
Pythonの標準入力はinput()ひとつで手軽に扱えますが、受け取った値が常に文字列であるという点には注意が必要です。数値として使う場合はint()・float()での変換や、try・exceptとの組み合わせを忘れないようにしましょう。
本ページはプロモーションを含みます。
参考書籍(PR)
Pythonをもっと学びたい方には「スッキリわかるPython入門 第2版」がおすすめです。
PR
コードを書かずに自動化したい方へ
「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。
コメント
コメントを投稿