Pythonプログラミング

【Python】6.標準入力

input関数というキーボードに入力されたデータを受け取るためのの関数を使うと、標準入力と呼ばれる入力に対しての処理ができます。
基本的にはinput関数を使います。

1行の入力

まずは受け取ったデータをprint関数ですぐに出力してみます。

例)一行の標準入力
a = input()
print(a + “と入力しました”)

入力「ほげほげ」

出力結果
ほげほげと入力しました

となります。
うまくいかない場合は、「”」「-」などの記号を半角英数で打ち直して下さい。
この値は文字列なので、計算したいなどの理由で整数にしたい場合はintで整数に変換します。

例)入力した数字を10倍する
tex= int(input())
print(tex * 10)

  1. 1行の入力を行い、intで整数に変換する
  2. ×10を演算し出力する。

こうすると、文字列を入力すると整数にできないのでエラーになります。
仮に25を入力すると、250で出力されます。
この時、整数ではなく小数点以下のある数字にする場合はintの代わりに浮動小数点数を扱うfloat関数を使います。

ではここで、自分の生まれた西暦を入力すると平成に変換するコードを書いてみます。

例)
a = int(input())
b = a – 1988
print(“あなたは平成” + str(b) + “年うまれです。”)

  1. 整数をキーボードから受け取りaに格納
  2. 平成なのでaから1988を引きます
  3. 接続子を入れ文章にして出力します。

平成生まれでない僕が入力したら-9になりました…勉強になりますね。

複数行の入力

2つか3つであれば、いちいち入力して処理するという事もできます。
例えば、aとbの2つを入力して比較するループ処理で出力してみます。
aがbより小さい場合は出力を行ってaに1加算するとしてみます。

例)2つの値を入力して計算する
a = int(input())
b = int(input())
while(a <= b):
print(a)
a = a + 1

入力例)
1
5

出力結果
1
2
3
4
5

いちいちinputで取れないような複数行の入力にはループを使います。

例)
cnt = int(input())
print(“データ個数は” + str(cnt))
for i in range(cnt):
txt = input().rstrip()
print(“値は” + txt)

  1. 入力値を整数としてcntに代入します(整数にできない値はエラー)
  2. 1行目をデータ個数として出力(実際のデータ個数と違うとエラー)
  3. for文の繰り返し数を先程のcntに指定
  4. 2行目を受け取って前後の空白を消すrstripを付けてtxtに代入
  5. txtを出力

この場合、最初の数値をデータの個数と解釈するので、1行目はデータ数である必要があります。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です