ユーザーからの入力を受け取ろう
学習の目標
本章では、以下の内容を学習します。
- input関数の基本的な使い方を理解する
- ユーザーからの文字列入力を受け取る方法を習得する
- 入力した文字列を数値に変換する方法を学ぶ
- 簡単な対話型プログラムの作成方法を身につける
input関数とは何か
これまでのプログラムでは、変数の値をプログラムの中で直接決めていました。しかし、実際のプログラムでは、ユーザーが自分で値を入力できるようにしたいことがよくあります。そんな時に使うのがinput関数です。
input関数を使うと、プログラムの実行中にユーザーがキーボードから文字を入力し、その内容をプログラムで受け取ることができます。これにより、同じプログラムでも、実行するたびに異なる結果を得ることができるようになります。
VS Codeで新しいファイル input_practice.py
を作成して、ユーザー入力の受け取り方を学んでいきましょう。
input関数の基本的な使い方
最初の入力プログラム
input関数の最も基本的な使い方を見てみましょう。input関数を実行すると、プログラムは一時停止し、ユーザーがキーボードで何かを入力してEnterキーを押すまで待機します。
user_input = input("あなたの名前を入力してください: ")
print(f"こんにちは、{user_input}さん!")
このプログラムを実行すると、まず「あなたの名前を入力してください: 」というメッセージが表示されます。そして、ユーザーが名前を入力してEnterキーを押すまでプログラムは待機し続けます。例えば「太郎」と入力してEnterキーを押すと、以下のような結果が表示されます。
あなたの名前を入力してください: 太郎
こんにちは、太郎さん!
input関数の括弧の中に書いた文字列は、ユーザーへの「プロンプト」として表示されます。これにより、ユーザーは何を入力すれば良いのかを理解できます。
シンプルな質問プログラム
もう少し詳しい情報を受け取ってみましょう。
name = input("お名前を教えてください: ")
age = input("年齢を教えてください: ")
print(f"はじめまして、{name}さん")
print(f"{age}歳なんですね")
このプログラムを実行して、名前に「花子」、年齢に「25」と入力すると、以下のような結果が表示されます。
お名前を教えてください: 花子
年齢を教えてください: 25
はじめまして、花子さん
25歳なんですね
複数のinput関数を使うことで、段階的に情報を収集することができます。
入力データは文字列として扱われる
input関数の重要な特徴
input関数で受け取ったデータは、数字を入力した場合でも必ず文字列として扱われます。これは初心者がよく間違える重要なポイントです。
user_input = input("好きな数字を入力してください: ")
print(f"入力された値: {user_input}")
print(f"データの型: {type(user_input)}")
このプログラムを実行して「123」と入力すると、以下のような結果が表示されます。
好きな数字を入力してください: 123
入力された値: 123
データの型: <class 'str'>
見た目は数字に見えますが、型を確認すると str
(文字列)になっていることが分かります。これは「1」「2」「3」という3つの文字が並んだ文字列として扱われているということです。
文字列の数字では計算できない
文字列として受け取った数字は、そのままでは数値計算に使うことができません。
num_str = input("数字を入力してください: ")
result = num_str + num_str
print(f"結果: {result}")
このプログラムで「5」と入力すると、以下のような結果が表示されます。
数字を入力してください: 5
結果: 55
数値の足し算「5 + 5 = 10」ではなく、文字列の連結「5」+「5」=「55」が行われているのが分かります。
入力した文字列を数値に変換
int関数で整数に変換
入力された文字列を数値として使いたい場合は、int関数を使って整数に変換する必要があります。
age_str = input("年齢を入力してください: ")
age_num = int(age_str)
print(f"入力された年齢(文字列): {age_str}")
print(f"変換後の年齢(数値): {age_num}")
print(f"10年後の年齢: {age_num + 10}")
このプログラムを実行して「20」と入力すると、以下のような結果が表示されます。
年齢を入力してください: 20
入力された年齢(文字列): 20
変換後の年齢(数値): 20
10年後の年齢: 30
int関数で変換した後は、正しく数値計算ができるようになります。
入力と変換を一度に行う
input関数とint関数を組み合わせて、入力と変換を一度に行うこともできます。
number = int(input("数字を入力してください: "))
doubled = number * 2
print(f"入力された数字: {number}")
print(f"2倍した結果: {doubled}")
「15」と入力すると、以下のような結果が表示されます。
数字を入力してください: 15
入力された数字: 15
2倍した結果: 30
この書き方の方が簡潔で、実際のプログラムでもよく使われます。
float関数で小数に変換
小数を扱いたい場合は、float関数を使います。
height = float(input("身長を入力してください(cm): "))
height_m = height / 100
print(f"身長: {height}cm")
print(f"メートル換算: {height_m}m")
「170.5」と入力すると、以下のような結果が表示されます。
身長を入力してください(cm): 170.5
身長: 170.5cm
メートル換算: 1.705m
対話型プログラムを作ってみよう
簡単な計算機プログラム
ここまで学んだ知識を組み合わせて、ユーザーと対話しながら計算を行うプログラムを作ってみましょう。
print("簡単な足し算プログラム")
num1 = int(input("1つ目の数字を入力してください: "))
num2 = int(input("2つ目の数字を入力してください: "))
result = num1 + num2
print(f"{num1} + {num2} = {result}")
このプログラムを実行して「8」と「12」を入力すると、以下のような結果が表示されます。
簡単な足し算プログラム
1つ目の数字を入力してください: 8
2つ目の数字を入力してください: 12
8 + 12 = 20
ユーザーが入力した値によって、毎回異なる計算結果を得ることができます。
個人情報を収集するプログラム
文字列と数値の入力を組み合わせて、より実用的なプログラムを作ってみましょう。
print("プロフィール登録")
name = input("お名前: ")
age = int(input("年齢: "))
city = input("お住まいの都市: "))
print("\n--- 登録内容の確認 ---")
print(f"名前: {name}")
print(f"年齢: {age}歳")
print(f"住所: {city}")
# 年齢に基づいた判定
if age >= 20:
status = "成人"
else:
status = "未成年"
print(f"区分: {status}")
このプログラムを実行して「佐藤」「22」「大阪」と入力すると、以下のような結果が表示されます。
プロフィール登録
お名前: 佐藤
年齢: 22
お住まいの都市: 大阪
--- 登録内容の確認 ---
名前: 佐藤
年齢: 22歳
住所: 大阪
区分: 成人
入力された情報を整理して表示し、年齢に基づいた判定も自動的に行っています。
入力を使ったインタラクティブな体験
好みを聞くプログラム
ユーザーの好みを聞いて、それに応じたメッセージを表示するプログラムを作ってみましょう。
print("あなたの好みを教えてください")
favorite_season = input("好きな季節は?(春/夏/秋/冬): ")
favorite_food = input("好きな食べ物は?: ")
print(f"\n{favorite_season}がお好きなんですね!")
print(f"{favorite_food}も美味しいですよね")
print("ありがとうございました!")
「秋」と「りんご」を入力すると、以下のような結果が表示されます。
あなたの好みを教えてください
好きな季節は?(春/夏/秋/冬): 秋
好きな食べ物は?: りんご
秋がお好きなんですね!
りんごも美味しいですよね
ありがとうございました!
このように、input関数を使うことで、ユーザーとのやり取りを通じて個人に合わせたメッセージを表示できるようになります。
まとめ
本章では、Pythonでのユーザー入力の受け取り方について学習しました。習得できた内容は以下の通りです。
input関数を使ってユーザーからの文字列入力を受け取る基本的な方法を理解しました。input関数で受け取ったデータは必ず文字列として扱われることを学び、数値として使用したい場合はint関数やfloat関数で変換する必要があることを習得しました。
また、input関数とデータ変換を組み合わせることで、ユーザーと対話しながら動作する実用的なプログラムを作成できるようになりました。これにより、同じプログラムでも実行するたびに異なる結果を得られる、よりインタラクティブなプログラムを作成できます。
ユーザー入力は、実用的なプログラムを作る上で欠かせない機能です。今後学ぶ条件分岐や繰り返し処理と組み合わせることで、さらに高度で便利なプログラムを作成できるようになります。
Starterプランでより詳しく学習
この先のコンテンツを読むにはStarterプラン以上が必要です。より詳細な解説、実践的なサンプルコード、演習問題にアクセスして学習を深めましょう。