[dropcap]P[/dropcap]ythonに限らずですがプログラミング言語の学習において、繰り返し処理はやや難易度が高くなってしまう登竜門のようなものですが、For文とwhile文を同時に学ぶことで違いが理解することができます。一気に頭に定着させてしまいましょう。まずはfor文から学びましょう。
繰り返し処理とは
繰り返し処理とはそのままですが、特定の行為を繰り返すことを指します。プログラミングでは、特定のコードを繰り返すことを指します。例を見てみましょう。例えば、heyを5回呼び出す場合、繰り返し処理をしないとこうなるでしょう。
>>> print('hey') hey >>> print('hey') hey >>> print('hey') hey >>> print('hey') hey >>> print('hey') hey
5回ならまだしも100回あったら堪らないのですね。ここでは繰り返し処理の王道のfor文とwhile文で考えてみましょう。
Forの基本構文
for構文の基本形は以下の通りです。
for 値を入れる変数 in シーケンスその他反復可能なオブジェクト: 条件式
尚、シーケンスとは、リストはもちろん、タプル、文字列等も含みます。
具体例を見た方がわかりやすいのでいくつか確認していきましょう。まずは先ほどのケースをfor文を使ったら例えばこんな感じで簡単に表現できます。
for _ in range(5): print('hey') hey hey hey hey hey
ここではリストの部分に数列を入れるrange関数を使っています。range関数のかっこの中が5ですので、0から5の一つ手前まで=4までの数列が入ってることを意味します。4で終わっていますがプログラミングでは0からカウントされるので、0,1,2,3,4と結果的にトータルの数では5になるので、当初の目的であった5回分呼び出すことができます。
range関数について
ここでrange関数の全体感が理解できるように表で例をご紹介します。
例: | 結果 |
range(10) | 0~9まで計10 |
range(1,5) | 1から4まで計4 |
range(0, 10, 2) | 0から9まで2ずつ足す = 0, 2, 4, 6, 8 |
range(-20, -100, -20) | -20から-100まで-20ずつ足す = -20, -40, -60, -80 |
For文その他構文例
まずはrangeではなく数列の場合:
list = [1,2,3] for i in list: print(i) 1 2 3
続いて文字列:
あいうえお list = 'あいうえお' for i in list: print(i) あ い う え お
続いて文字列の配列:
list = ['鈴木','山田', '伊藤'] for i in list: print(i) 鈴木 山田 伊藤
続いてif文にbreakを用いた場合:
ifと絡めて、ifの場合はループを抜けてね(breakしてね)という意味です。
for i in ["曾根崎","大和田","中野渡"]: if i == "中野渡": break print(i + '、倍返しだ') 曾根崎、倍返しだ 大和田、倍返しだ
続いてif文にcontinueを用いた場合:
ifの条件式に該当する場合は、以降の処理をスキップしてねという意味です。
for i in ["中野渡","大和田","曾根崎"]: if i == "中野渡": continue print(i + '、倍返しだ') 大和田、倍返しだ 曾根崎、倍返しだ
ここでは、中野渡を一番前に持ってきましたが、間違えずにきちんと暴言を吐かずに済みましたね。
ではfor+if+elseをみてみましょう。
for i in ["中野渡","大和田","曾根崎"]: if i == "中野渡": print(i + '様、お疲れ様です。') else: print(i + '、倍返しだ!') 中野渡様、お疲れ様です。 大和田、倍返しだ! 曾根崎、倍返しだ!
この方法でも無事失言になりませんでしたね。注意点として、for文と同じレイヤーにelseがあるのではなく、あくまでfor文の中にあるif文と同じレイヤーにelseがある、紐ついていることを認識しましょう。
最後に辞書型でfor文を使うときにどうなるかみてみましょう。
fee_list = {'中野渡':3000, '大和田':1800, '曾根崎':800} for name,fee in fee_list.items(): print(name,':',fee) 中野渡 : 3000 大和田 : 1800 曾根崎 : 800
辞書では、ラベルと値セットで呼び出したい場合に、変数は2つ用意すること、inの次のリスト等の表記に.items()をつけること、また呼び出す際も2つセットで呼び出すことですで表示されます。
次はwhile文を学びましょう
同じ繰り返し処理の役割を担うwhile文は学習することで効率的に繰り返し処理をマスターしましょう。