Python -ループ処理とデータの分類について-
ループ処理
ループを使うと、同じ処理を繰り返し実行できます。
回数を指定して繰り返す
例えば、
greeting = "Hello world"
print(greeting)
print(greeting)
print(greeting)
というようなプログラムだと、Hello worldと3回表示します。
しかし、これを100回繰り返すとなると、同じ書き方ではとても大変です。
そこで、同じ処理を繰り返す場合にはforを使います。
上のプログラムを書き直すと以下のようになります。
greeting = "Hello world"
for i in range(3):
print(greeting)
この時に使うiは変数です。
(余談ですが、主にループ処理を行う場合は、 i を使うのが慣習になっています。
既にiを変数で使っている場合はj、それも使われていたらkを使います。
これは「頭文字がi~nで始まる変数名は整数型である。」 という決まりがあったからです。)
また、rangeの後の括弧の中の数字が繰り返す回数です。
つまり、100回繰り返す場合は、括弧の中を100にするということになります。
コロンも忘れないように注意ですね!
変数iで何回目か表示する
上記のプログラムで、Hello worldの後に、回数を表示する場合、str関数を使います。
実際に書いてみると、こうなります。
greeting = "Hello world"
for i in range(3):
print(greeting + str(i))
この時、str関数の括弧の中は変数iにします!
ループ処理におけるinput関数
ループ処理でinput関数を使うと、標準入力から複数のデータを受け取ることができます。
繰り返し回数を受け取る
変数で繰り返し回数を指定することができるということです。
変数にはcountを使います。
実際に書くとこうなります。
greeting = "Hello world"
count = int(input())
for i in range(count):
print(greeting)
int関数の括弧の中にあるinputの括弧も忘れないようにしましょう!
また、int関数とは文字列や小数点以下の値を含む数値などを整数に変換する関数のことです。
複数のデータを受け取る
いくつかの文字を入力していたとして、それを何回表示するかを指定することができます。
例えば、入力の1番上に3とあり、上から3人の名前がReyow,Zenn,Pythonだとします。
それに、以下のプログラムを実行します。
count = int(input())
for i in range(count):
name = input()
print("Hello " + name)
すると、
Hello Reyow
Hello Zenn
Hello Python
と表示されます。
int関数で数字を引っ張ってきて、それをrangeの引数とし、
input関数で変数nameにはそれぞれ文字列を引っ張ってきたことで、このような結果となります。
またこの際、繰り返し表示したい回数分の数値は最初に入力しておく必要があります。
複数のデータを分類する
forとifを組み合わせると、複数のデータに同じ処理を繰り返すことができます。
まず、複数の整数データを受け取るプログラムを書きます。
count = int(input())
for i in range(count):
number = int(input())
print(number)
標準入力に、上から3,10,15,7.......とあったとします。
すると、出力は、10,15,7となります。
(3回、上から表示するという処理になるため)
ここに、ifを使って、数値を分類するプログラムを書いていきます。
count = int(input())
for i in range(count):
number = int(input())
print(number)
if number == 10:
print(str(number) + "は10に等しい")
elif number > 10:
print(str(number) + "は10より大きい")
else:
print(str(number) + "は10より小さい")
同じように標準入力に、上から3,10,15,7.......とあったとします。
すると、
10
10は10に等しい
15
15は10より大きい
7
7は10より小さい
と表示されます。
Discussion