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





