norablog-techのブログ

このブログは、自分の忘備録的にアウトプットするためのブログとなっております。

Python3:標準入力覚書

最近、本格的にプログラミング言語「Python3」の勉強をしています。

標準入力に関する覚書です。
※標準入力というのは、「CUI環境でのキーボードからの入力」と定義して話を進めます。

 

通常、input()関数で入力を受け付けます。
これは一行ごと、”改行”で入力が確定されます。
これで取り込まれるのは、「文字列(string)」となります。
ですから入力値を計算に使おうとする場合、int()関数などで”数字”に変換しなければなりません。

EX.
入力側:
1
2

プログラム側:
a = input()
b = input()
ans = int(a) + int(b)
print(ans)

 

一行ごとに、1変数ならばこれでいいのですが、一行で複数の値を代入したいときどうすればいいのか?
今回ここが引っかかってしましました。

 

いろいろ調べた結果、こういう場合、「.rstrip()」メソッド、「.split(" ")」メソッドを使えばよいようです。

・「.rstrip()」メソッド:文字列の末尾部分を除去したコピーを返します。
 ここでは”改行”を除去するために使ってます。
・「.split(" ")」メソッド:文字列を sep をデリミタ文字列として区切った単語のリストを返します。
 ここでは”" "(半角ブランク)”を、デリミタとしてます。

 もちろん”,(カンマ)”やほかの文字を使うこともできます。

※詳しくは「Pythonドキュメント(https://docs.python.org/ja/3/)」をご参照ください。

 

EX.
入力側:
1 2 3

プログラム側:
# coding: utf-8
input_line = input().rstrip().split(" ")
print(input_line)

出力:
['1', '2', '3']

このように出力されます。

 

これを計算するならば、
# coding: utf-8
input_line = input().rstrip().split(" ")

ans = 0
for i in range(len(input_line)):
  ans += int(input_line[i])
  i += 1
print(ans)

出力:
6

こんな風に、プログラムを書くことが出来ます。

 

以上