Python

Python – ⑥ while文・for文(繰り返し・ループ処理)

while文

 while文はある処理を一定回数機械的に繰り返したいときに使います。例えば変数x=0にxが10になるまで1を足し続けたい場合などです。

 

書式
>>> while 条件:
□□□□処理

 

 『条件』というのはif文のところでやったものと同じです。『条件』を満たさなくなるまで繰り返し『処理』を実行し続けます(ループ処理)。また、if文と同様にインデント(=赤い四角の部分=スペース)が必要です。こんなイメージです。

 

 

>>> x=0
>>> while x<10:
x=x+1
print(x)
 
1
2
3
4
5
6
7
8
9
10

 

 ここでの条件は『x<10』つまり『xが10より小さい』です。処理の中にある『x=x+1』は覚えているでしょうか。右辺を計算して左辺に代入するというやつです。ここでxに1を足しています。意味が分からない方はもう一度こちらをご覧ください。このあとには『print(x)』でxの中身を出力(青字の部分)しています。条件はxが10より小さいなので、xが9のときに『x=x+1』と『print(x)』が実行された時点でxの値は10に達しました。ここで条件を満たさなくなり、処理が終了しています。

 

 次にwhile文とif文を組み合わせてみましょう。

 


>>> a=0
>>> while a<20:
a=a+1
if a%2==0:
print(a)
 
2
4
6
8
10
12
14
16
18
20

 

 ifの条件は『a%2==0』つまり『aを2で割ったあまりがない』です。ということは『aが偶数』ともいえます。aは20に達するまで1ずつ足されますが、『aが偶数』という条件があるので偶数の時にしか出力(print(a)が実行)されません。よって『2,4,6,・・・,18,20』が出力結果になっています。

 

for文

 for文もwhile文とよく似ていて、同じく『繰り返し』に使います。

 

書式
>>> for 変数 in リスト:
□□□□処理

 

 for文にもインデントは必須です。『リスト』と書いたところはタプルや文字列でも可能です。早速実例を見ていきましょう。

 

>>> array=['広島','阪神','DeNA','巨人','中日','ヤクルト']
>>> for var in array:
print(var)
 
'広島'
'阪神'
'DeNA'
'巨人'
'中日'
'ヤクルト'

 

 『var』は書式の中に書いた『変数』に相当します。『array』はリストです。何をやっているのか少々わかりにくくなってしまいました。しかしこのプログラムがやっているのは次と同じことです。

 

>>> var=arary[0]
>>> print(var)
'広島'
>>> var=array[1]
>>> print(var)
'阪神'
>>> var=array[5]
>>> print(var)
'ヤクルト'

 

 『array』の要素を先頭から順番に変数『var』に代入して処理(この場合はprint(var) )を実行しています。リストの最後までたどり着いたら終了です。これがfor文で行われていることになります。

 

 次にリストを文字列に変えてみましょう。

 

>>> string='baseball'
>>> for s in string:
print(s)
 
'b'
'a'
's'
'e'
'b'
'a'
'l'
'l'

 

 『string』という文字列中の文字が先頭から一文字ずつ変数『s』に代入され『print(s)』が行われているのがわかります。『string』に代入されている文字列は『‘baseball’』ですから『’b’,’a’,・・・,’l’』と出力されています。

 

 最後は1~1000など順番に並んだ単純な数字を扱う場合を考えます。『[1,2,3,4,・・・,998,999,1000]』というリストを用意してfor文を使うのは面倒ですよね。こんな時に新しい命令『range()』を使います。print()len()と同じく『range()』は関数です。

 

>>> for num in range(1001):
print(num)
 
1
2
3
4



998
999
1000

 

 『range()』のかっこの中に必要な数字+1を指定すると1~必要な数字を一気に扱えるようになります。

 

 ここまで繰り返し・ループ処理を行う二つの構文whileとforを見てきました。次回もお楽しみに!⇓