Python標準入出力の簡単な例
キーボードからの入力(標準入力)、ディスプレイへの表示出力(標準出力)を行う簡単なPythonプログラム例を作成した。入力は「input」、出力は「print」を用いた。プログラムを以下に示す。
print("a
= ", end='')
a = int(input())
print("b
= ", end='')
b = int(input())
print("sum
= %s" %(a+b))
a1 =
input("a1 = ")
b1 =
input("b1 = ")
print("sum
= %s" %(a1 + b1))
print("%d
+ %d = %d" %(a, b, a + b))
print("{0:d}
+ {1:d} = {2:d}".format(a, b, a + b))
print("{0:s}
+ {1:s} = {2:s}".format(str(a), str(b), str(a + b)))
上のプログラムを、Python 3.4.1 で実行したときのディスプレイ画面の例を以下に示す(上のプログラムは、コピー・貼り付けで簡単にエディタ内に書き込んで、実行を確認することができる。Pythonの使い方については別のウェブサイトで説明)。
>>>
================================ RESTART ================================
>>>
a = 10
b = 20
sum =
30
a1 =
10
b1 =
20
sum =
1020
10 +
20 = 30
10 +
20 = 30
10 +
20 = 30
>>>
関数printの第1パラメータに設定された文字列が出力されるが、第2パラメータとして「end=’’」(「’’」は半角文字「'」が2つ連続したものである)が置かれていると、print関数による出力後、改行は行われない。
関数inputは、キーボードからの入力として、Enterキーが押されるまでを1行分の文字列として読み込む。従って、数値として入力するときは、読み込んだ文字列をintとかfloatとかの型を指定して、その文字列の表す数値に変換する必要がある。例えば、文字列”10”をその表す数値10に変換する。
関数printの第1パラメータの文字列内に「%s」とか「%d」があると、文字列に続く%記号の右側の値が順番にその位置に挿入される。「%s」は文字列の値が置かれることを意味し、「%d」は整数値の値が置かれることを意味する。
「print("sum = %s" %(a+b))」の場合、a+bは整数値であるが、a+bの値を表す文字列に変換されて「%s」の位置に置かれる。
関数inputに文字列がパラメータとして設定されていると、その文字列が出力された後、入力待ちとなる。
input(文字列)
は
print(文字列, end=’’)
input()
と同じである。
次の関数inputの実行によって、a1とb1には入力した数字が文字列としてそのまま代入される。
a1 = input("a1 = ")
b1 = input("b1 = ")
したがって、「print("sum = %s" %(a1 + b1))」において、a1とb1は文字列であるので、足し算「+」は文字列の連結を表す。
「print("%d + %d = %d" %(a, b, a + b))」では、「"%d + %d = %d"」における1番目から3番目までの各「%d」は、それぞれ「%(a, b, a + b)」におけるa、b、a+bと対応している。
「文字列.format(値の並び)」では、文字列に含まれる{位置:書式文字列}の箇所がformat(値の並び)から選ばれたものに置き換えられる。位置は、「値の並び」において、左から0番目、1番目と数える。文字列とformatの間にピリオド . があることに注意。
「"{0:d} + {1:d} = {2:d}".format(a, b, a + b)」の場合、{0:d} 、{1:d}、{2:d}の箇所が、a、b、a+bの値を書式文字列「d」によって指定されている十進表記文字列で表したものと置き換えられる。
「"{0:s} + {1:s} = {2:s}".format(str(a), str(b), str(a + b))」では、{0:s}、{1:s}、{2:s}の部分が、a、b、a+bの値を型strによって文字列表記に変換したものと置き換えられる。