input関数というキーボードに入力されたデータを受け取るためのの関数を使うと、標準入力と呼ばれる入力に対しての処理ができます。
基本的にはinput関数を使います。
1行の入力
まずは受け取ったデータをprint関数ですぐに出力してみます。
例)一行の標準入力
a = input()
print(a + “と入力しました”)
入力「ほげほげ」
出力結果
ほげほげと入力しました
となります。
うまくいかない場合は、「”」「-」などの記号を半角英数で打ち直して下さい。
この値は文字列なので、計算したいなどの理由で整数にしたい場合はintで整数に変換します。
例)入力した数字を10倍する
tex= int(input())
print(tex * 10)
- 1行の入力を行い、intで整数に変換する
- ×10を演算し出力する。
こうすると、文字列を入力すると整数にできないのでエラーになります。
仮に25を入力すると、250で出力されます。
この時、整数ではなく小数点以下のある数字にする場合はintの代わりに浮動小数点数を扱うfloat関数を使います。
ではここで、自分の生まれた西暦を入力すると平成に変換するコードを書いてみます。
例)
a = int(input())
b = a – 1988
print(“あなたは平成” + str(b) + “年うまれです。”)
- 整数をキーボードから受け取りaに格納
- 平成なのでaから1988を引きます
- 接続子を入れ文章にして出力します。
平成生まれでない僕が入力したら-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)
- 入力値を整数としてcntに代入します(整数にできない値はエラー)
- 1行目をデータ個数として出力(実際のデータ個数と違うとエラー)
- for文の繰り返し数を先程のcntに指定
- 2行目を受け取って前後の空白を消すrstripを付けてtxtに代入
- txtを出力
この場合、最初の数値をデータの個数と解釈するので、1行目はデータ数である必要があります。