パソコン

【 Python 】繰り返し処理(for文編)

更新日:

今回は繰り返し処理についての記事です。

繰り返し処理はループとも言われ、条件分岐(if文)と並び、非常に重要なメソッドになります。

ポイント

「メソッド」は処理のことです。

まずはこれを・・・

まずは、以下のコードをIDLEに保存し、実行してみてください。

test.py


[python highlight="1,4,9" collapse="true" toolbar="true"]for a in range(10):

print (a)[/python]

実行結果が0~9まで10行表示されましたね。

1行目

for a in range(10):
日本語訳:

変数aに1ずつ足し、10回インデント内を繰り返しなさい。です。

では、次のコードを実行してみてください。

test.py


[python highlight="1,4,9" collapse="true" toolbar="true"]for a in range(10):

print("変数aの",a+1,"回目")

for b in range (10):

print(a+1,"の",b+1,"回目")[/python]

Pythonでは「c=c+1」を「c+=1」と書けば同じ処理をしてくれるヨ!

100行表示されて、変数aと変数bの関係がわかったのではないでしょうか?

このようにfor文の中にfor文を入れて繰り返す処理を多重ループと言います。

今の場合、2重ですが、もちろん3重、4重もできます。

多重ループを重ねると、設定値をミスってしまい、ずっとにループし続ける永久ループが発生させてしまうことがあります。

IDLEでは、「ctrlキー+c」で止めることができるので焦らないでくださいね。

また、Pythonでは他の言語とは違い、{}内に処理を書き込みません。

そうなると、「え?どの中を繰り返すの?」と疑問に思う方もいるかも知れません。

その答えは、繰り返すのはインデント内です。

メソッドAのインデントの中にメソッドA’を入れることを「入れ子」や「ネスト」と呼んでいます。

for文の基本構文

for 変数 in イテラブル・オブジェクト:
(インデント)繰り返すメソッド

イテラブル・オブジェクトについてはこちら。

他の使い方も!

指定した回数を繰り返すfor文ですが、他の使い方もできます。

test.py


[python highlight="1,4,9" collapse="true" toolbar="true"]samplelist = ["わ","た","し","は","こ","な","ゆ","き","で","す"] # 配列

for a in samplelist:

print(a)[/python]

これは、配列と呼ばれるもので、簡単に説明すると、samplelist[0]から順に、文字列型の箱を作って、その箱に1文字ずつ格納しています。
samplelist[0]の中は「わ」という文字列が格納され、
samplelist[1]の中には「た」が格納されて、
最終的にsamplelist[9]に最後の文字「す」が格納されます。

【 Python 】配列(リスト)多次元配列をわかりやすく! - さぶかるぐらし
【 Python 】配列(リスト)多次元配列をわかりやすく! - さぶかるぐらし

この記事はPythonの配列について書いています。 Contents1 配列1.1 リスト型1.1.1 多次元配列1.2 配列は考え方次第 配列 プログラミングにおける配列とは、変数のような入れ物の中

>>> NEXT

for 変数 in 配列名:とすることで、変数には順番に配列が代入され、空の配列にたどり着くまでインデント内を繰り返し処理するようになります。

Pythonは多次元配列も可能なため、このfor文も覚えておいた方が良いでしょう。

例えば!

test.py


[python highlight="1,4,9" collapse="true" toolbar="true"]☆
☆☆
☆☆☆
☆☆☆☆
☆☆☆☆☆
☆☆☆☆☆☆
☆☆☆☆☆☆☆
☆☆☆☆☆☆☆☆
☆☆☆☆☆☆☆☆☆
☆☆☆☆☆☆☆☆☆☆[/python]

実行結果が、上記のように表示されるプログラムを作る場合、どのようなプログラムを組めばよいでしょうか?

test.py


[python highlight="1,4,9" collapse="true" toolbar="true"]print("☆")
print("☆☆")
print("☆☆☆")
print("☆☆☆☆")
print("☆☆☆☆☆")
print("☆☆☆☆☆☆")
print("☆☆☆☆☆☆☆")
print("☆☆☆☆☆☆☆☆")
print("☆☆☆☆☆☆☆☆☆")
print("☆☆☆☆☆☆☆☆☆☆")[/python]

上記プログラムでも、問題なく同じ実行結果になります。

for分を使うと、こんな感じ。

test.py


[python highlight="1,4,9" collapse="true" toolbar="true"]star = "☆"

for i in range(10):

print (star * ( i + 1 ))[/python]

starという変数に文字列型の"☆"を入れ、for文で10回ループ、ループ内に"☆"をi回分表示させるという至極単純なプログラムです。

test.py


[python highlight="1,4,9" collapse="true" toolbar="true"]for i in range(10):

print ("☆" * ( i + 1 ))[/python]

当然ながら、これでも動きます。

3行目にi+1されている理由は、1回目のループ時のiの値は0だからだよ!

ループ処理は他にも!?

ループ処理は他にも存在します。

ある条件を満たすまで繰り返す「while文」です。

for文が一定回数ループさせる処理ですが、while文は、条件を満たすまで繰り返すというif文とfor文を混ぜ合わせたようなイメージです。

最後に

いかがでしたでしょうか。

ループ処理が重なると、非常に複雑になってきます。

フローチャートを作るとスッキリ整理できるようになります。

最初はメモ程度でいいので、フローチャートを作ってそのとおり処理させて練習しましょう。

最後までお読みいただき、ありがとうございました。


  • この記事を書いた人

こなゆき

パーフェクト趣味人。 知的好奇心MAX。 ゲーム・パソコン全般・科学・DIY・オーパーツとか怪しげなものも大好物。

-パソコン

Copyright© さぶかるぐらし , 2019 All Rights Reserved.