Python標準入力の基本と活用方法を徹底解説!

Pythonでは、標準入力からのデータ取得ができます。ここでは、Pythonでの標準入力の基本的な使い方から、活用方法までを徹底解説します。

Pythonでの標準入力の基本的な使い方

Pythonでの標準入力は、input()関数を使います。この関数は、文字列を受け取ります。

name = input("名前を入力してください:")
print("こんにちは、" + name + "さん!")

input()関数で入力された文字列は、nameという変数に格納されます。そして、print()関数を使って、nameの値を表示しています。

標準入力からのデータ取得方法

標準入力からのデータ取得方法は、input()関数を使います。以下は、数字を入力して、その数字を2倍にして表示するプログラムです。

num = int(input("数字を入力してください:"))
print("2倍すると、" + str(num * 2) + "です。")

このプログラムでは、input()関数で入力された文字列をint()関数で整数に変換しています。そして、その値を2倍にして、print()関数で表示しています。

複数行の標準入力の読み込み方

複数行の標準入力の読み込み方は、sys.stdinを使います。以下は、複数行の入力を受け取って、その合計を表示するプログラムです。

import sys
sum = 0
for line in sys.stdin:
    sum += int(line.strip())
print("合計は、" + str(sum) + "です。")

このプログラムでは、sys.stdinから読み込まれた複数の行を、forループで処理しています。そして、各行の値をint()関数で整数に変換して、sumに加算しています。最後に、print()関数で合計を表示しています。

標準入力からの数値取得と型変換

標準入力からの数値取得と型変換は、input()関数とint()関数やfloat()関数を組み合わせて行います。以下は、2つの数字を入力して、その和を表示するプログラムです。

num1 = int(input("1つ目の数字を入力してください:"))
num2 = int(input("2つ目の数字を入力してください:"))
print("2つの数字の和は、" + str(num1 + num2) + "です。")

このプログラムでは、input()関数で入力された文字列をint()関数で整数に変換しています。そして、その2つの値を加算して、print()関数で表示しています。

標準入力を用いた問題解決の例示

標準入力を用いた問題解決の例として、以下の問題を解いてみましょう。

問題:あなたは、以下のような形式で標準入力からデータを受け取ります。
・1行目には、整数Nが与えられます。
・2行目には、N個の整数が半角スペース区切りで与えられます。
これらのデータを受け取って、N個の整数の平均値を求めてください。

N = int(input())
nums = list(map(int, input().split()))
average = sum(nums) / N
print("平均値は、" + str(average) + "です。")

このプログラムでは、input()関数を使って、1行目には整数Nを、2行目にはN個の整数を受け取っています。そして、map()関数を使って、2行目で受け取った値をすべて整数に変換して、list()関数でリストに変換しています。最後に、sum()関数でリストの値の合計を求めて、Nで割って平均値を求めています。

注意点とよくあるエラーとその対処法

標準入力には、以下のような注意点があります。

  • input()関数で受け取った値は、すべて文字列として扱われます。
  • input()関数で受け取った値を、int()関数やfloat()関数で型変換しないと、数値として扱えません。
  • sys.stdinを使う場合は、標準入力が終了するまで待ち続けるため、標準入力が終了したことを示す条件が必要です。

よくあるエラーとその対処法は、以下の通りです。

  • ValueError: invalid literal for int() with base 10: 'a'
    入力された文字列が数値ではない場合に発生します。
    対処法:入力された文字列が数値かどうかを判定する必要があります。
  • EOFError: EOF when reading a line
    標準入力が終了したにもかかわらず、読み込みが続けられている場合に発生します。
    対処法:sys.stdinを使う場合は、標準入力が終了したことを示す条件が必要です。

まとめ

Pythonでの標準入力の基本的な使い方から、活用方法までを徹底解説しました。標準入力は、問題解決やプログラムの実行時に必要不可欠な機能です。ぜひ、活用して効率的なプログラミングを行ってみてください。