#初めに
やり遂げる。
###7章 ループ
- 始さえすれば、8割は成功したようなものだ。
- 残り2割が果てし無い...
- forループ
- forループは、イテラブルを繰り返し処理するために使われ、反復処理と言う。1ループごとにイテラブルから渡される要素を、コード群で使用したり、操作したりする。
forループ構文は以下のように定義される。
for [変数名] in [イテラブル]
[コードブロック]
[変数名]には自由に名前を指定して[イテラブル]の要素を割り当てるために使える。
name = "Ted"
for character in name:
print(character)
T
e
d
変数名にcharacterを自由に指定し、イテラブルなnameの先頭から新しい要素として一文字ごと出力している。
同様にforループでリスト、タプルの処理をさせると各要素を出力させる。
shows = ["GOT", "Narcos", "Vice"]
for show in shows:
print(show)
coms = ("A. Development","Friends","Always Sunny")
for show in coms:
print(show)
GOT
Narcos
Vice
A. Development
Friends
Always Sunny
辞書式では辞書のキーを要素として繰り返す。
people = {"G. Bluth II":"A. Development", "Barney":"HIMYM","Dennis":"Always Sunny"}
for character in people:
print(character)
G. Bluth II
Barney
Dennis
注意として出力の順番は異なる場合がある。それはPython3.6まではキーの順番が保持されるかどうかは実装依存だったから。
繰り返しの何回目かを表す整数値の変数であるインデックス変数をもちいてミュータブルなイテラブルを更新する例
tv = ["GOT","Narcos","Vice"]
i = 0
for show in tv:
new = tv[i]
new = new.upper()
tv[i] = new
i += 1
print(tv)
['GOT', 'NARCOS', 'VICE']
Pythonには、各要素のインデックス値を自動的に用意してくれる、enumerate関数がある
tv = ["GOT", "Narcos", "Vice"]
for i, new in enumerate(tv): # 変数名のところに2つかける
new = tv[i]
new = new.upper()
tv[i] = new
print(tv)
['GOT', 'NARCOS', 'VICE']
- range
- 組み込み関数rangeは、整数を順番に生成する。2つの引数として開始値と、終了値を指定できる。注意として二つ目の引数はその値を含まないこと。例としてrange(1,11)とした場合は、1~10の数字が生成される。
for i in range(1, 11):
print(i)
1
2
・・・
10
- whileループ
- whileループは式がTrueに評価されている間にコードの実行を繰り返す。
- 終了しないループを無限ループと呼び、PythonではControlを押しながらcキーを押すととまる。
x = 10
while x > 0:
print('{}'.format(x))
x -= 1
print("Happy New Year!")
10
9
...
1
'Happy New Year!'
- break
- break文はループを終了するための文。Pythonはbreak文に到達するとすぐループを終了する。
- continue
-continue文は、実行中の反復処理を途中で終了して、次の反復処理を開始する。break文とは違いcontinue文ではループは終了しない。
for i in range(1, 6):
if i == 3:
continue
print(i)
1
2
4
5
- 入れ子のループ
- ループの中のループなどの2重、3重ループなどを作成できる。
#終わりに
ループ処理は大事なので丁寧に勉強した。