ユーザーがキーボードなどを介してプログラムにデータを入力する方法です。

Pythonでは、input() 関数を使って標準入力からデータを受け取ります。この関数は入力されたデータを文字列として返します。
1.基本
例えば、ユーザーからの入力を受け取り、それを画面に表示する基本的なコードは次のようになります:
user_input = input("何か入力してください: ")
print("あなたが入力したのは: " + user_input)
このコードでは、input() 関数がユーザーからの入力を待ち、入力されるとその値を user_input に格納します。その後、print() 関数を使って入力された内容を表示します。
2.カンマで区切の場合
10,20,30,40 のようなカンマで区切られた文字列が入力された場合、それらを個別の数値に分割して合計するには、次の手順を実行します:
- 文字列をカンマで分割する。
- 分割された各要素を整数に変換する。
- すべての整数を合計する。
Pythonでこれを行うコードは以下のようになります
# 入力を受け取る
input_string = input("数値をカンマで区切って入力してください(例:10,20,30,40): ")
# 文字列をカンマで分割し、整数のリストに変換
numbers = [int(n) for n in input_string.split(',')]
# 数値を合計する
total = sum(numbers)
# 結果を表示
print("合計: ", total)
このコードでは、split(‘,’) メソッドを使って入力された文字列をカンマで分割し、リスト内包表記(list comprehension)で各要素を整数に変換しています。最後に sum() 関数でリスト内の数値を合計しています。
3.スペースで区切られた文字列
hello world japan のようなスペースで区切られた文字列が入力された場合、各単語を別々の行に表示するには、次の手順を実行します:
- 文字列をスペースで分割する。
- 分割された各単語を別々の行に表示する。
Pythonでこれを行うコードは以下のようになります
# 入力を受け取る
input_string = input("スペースで区切られた文字列を入力してください(例:hello world japan): ")
# 文字列をスペースで分割
words = input_string.split()
# 各単語を別々の行に表示
for word in words:
print(word)
このコードでは、split() メソッドを使って入力された文字列をスペースで分割し、その後 for ループを使用して各単語を別々の行に表示しています。
複雑なユーザー入力を扱うシチュエーションでは、入力を検証したり、複数の入力を組み合わせたり、特定のフォーマットでの入力を要求したりすることがあります。
ここでは、ユーザーが複数の商品とそれぞれの数量を入力し、最終的に合計金額を計算するショッピングカートのプログラムを例に解説します。
# 商品と価格の辞書
products = {"りんご": 100, "バナナ": 150, "オレンジ": 200}
# ショッピングカート(商品名と数量)
cart = {}
while True:
# 商品名の入力
product_name = input("商品名を入力してください(終了するには'終了'と入力): ")
if product_name == "終了":
break # ループを抜けて処理を終了
# 商品名が辞書に存在するか確認
if product_name not in products:
print("その商品は存在しません。")
continue
# 数量の入力
quantity = input(f"{product_name}の数量を入力してください: ")
try:
quantity = int(quantity) # 数量を整数に変換
if quantity <= 0: # 数量が0以下の場合はエラー
raise ValueError("数量は正の整数である必要があります。")
except ValueError as e: # 数量が整数でない場合のエラーハンドリング
print(f"無効な入力: {e}")
continue
# ショッピングカートに商品と数量を追加
if product_name in cart:
cart[product_name] += quantity # 既にカートにある商品の場合は数量を加算
else:
cart[product_name] = quantity # 新しい商品の場合は辞書に追加
# 合計金額の計算
total_price = sum(products[product] * quantity for product, quantity in cart.items())
# 結果の出力
print("ショッピングカートの内容:")
for product, quantity in cart.items():
print(f"{product}: {quantity}個")
print(f"合計金額: {total_price}円")
まず商品と価格の辞書を設定し、ユーザーに商品名と数量を入力してもらい、それをリストに保存します。このプロセスをユーザーが終了を選択するまで繰り返します。
入力された商品名が辞書 products に存在するかを確認し、数量が正の整数であるかを検証しています。すべての入力が完了した後に、各商品の価格を数量で乗算して合計金額を計算し、ショッピングカートの内容とともに出力しています。