今回は、Pythonの「for」文、「range」関数でよく使う方法や知っておくべき書き方をまとめました。
どれも基本的な書き方ですので、知らなかったものがあればぜひ利用してみてください。
無料オンライン相談を活用しよう!
Pythonというプログラミング言語は機械学習の人気の高まりなどもあり、様々なスクールが無料説明会を開催しています。
その中でも「Freeks(フリークス)|業界初!10,780円のサブスク型プログラミングスクール」がオススメです。Pythonを効率よく学びたいという方はまずは適性を知るためにも無料説明会を利用しましょう。
コンテンツ
最も一般的な使い方
まずは最も基本的でよく使う方法をおさらいしていきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
start = 0 stop = 3 for i in range(start, stop): print(i) """ 0 1 2 """ for i in range(stop): print(i) """ 0 1 2 """ |
range関数では、「stop」の値を含めないことに注意しましょう。
1から繰り返し処理を行う
1から繰り返し処理を行いたい場合は「start」を「1」に設定するとできます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
start = 1 stop = 6 for i in range(start, stop): print(i) """ 1 2 3 4 5 """ |
1からを出力したいだけなら「print(i + 1)」でもできますね!
繰り返し処理を一定間隔で行う
繰り返し処理を偶数の数字だけで行いたいなど、一定間隔で繰り返し処理をするには、第三引数に「step」を設定することで可能になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
start = 0 stop = 5 step = 2 for i in range(start, stop, step): print(i) """ 0 2 4 """ |
逆順に繰り返す
rangeで逆順に繰り返す
第三引数の「step」数に「-1」を指定すると逆順になります。注意点は第二引数を含めないという点で間違いやすいことです。
1 2 3 4 5 6 7 8 9 10 11 |
for i in range(4, -1, -1): print(i) """ 4 3 2 1 0 """ |
「-1」を含めません!
リストを逆順に繰り返す
Pythonではリストに対して、「スライス」という方法が使えます。スライスとは、リストの一部分を切り出して利用することです。
range関数同様に第三要素に「-1」を設定すると逆順になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
l = [i for i in range(5)] # [0, 1, 2, 3, 4] for i in l[::-1]: print(i) """ 4 3 2 1 0 """ |
また、組み込み関数である「reverse」を利用することでよりわかりやすく記述することも可能です。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
l = [i for i in range(5)] for i in reversed(l): print(i) """ 4 3 2 1 0 """ |
スライスについては「Pythonでリストに要素を追加する方法【append, extend, insert】(スライス)」を参考にしてください。
特定の条件でループを抜ける
break文の利用
「break」は、for文やwhile文などの繰り返し処理の途中で、特定の条件を満たした場合に繰り返し処理から抜け出すときに用います。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
for i in range(5): if i == 3: break print(i) """ 0 1 2 3 """ |
この例の場合、「break」文を用いなかったときは「4」まで出力されるのですが、その前に「i == 3」を満たしているので繰り返し処理から抜け出しています。
continue文の利用
「continue」は、特定の条件を満たした場合にそれ以降の処理を無視したいときに利用します。
1 2 3 4 5 6 7 8 9 10 11 12 |
for i in range(5): if i == 3: continue print(i) """ 0 1 2 4 """ |
「break」と「continue」の違いはよく理解しておきましょう!
else文の利用
「else」文は、繰り返し処理が最後まで行われたときに利用します。逆に言うと、特定の条件で「break」した場合には、「else」文の中を実行させないようにすることができるので便利です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
for i in range(3): if i == 1: break print(i) else: print("else") """ 0 """ for i in range(3): if i == 1: continue print(i) else: print("else") """ 0 2 else """ |
配列の要素で繰り返す
配列のインデックスを指定
「range」関数に引き渡す値に、「len」関数を用いてリストの要素数を指定する方法です。後述する「enumerate」関数と行っていることは同じです。
1 2 3 4 5 6 7 8 9 10 11 |
l = ["a", "b", "c"] for i in range(len(l)): print(i, l[i]) """ 0 a 1 b 2 c """ |
拡張for文の利用
リストのインデックスは必要ないという場合は、次のようにすると要素だけを取り出すこともできます。
1 2 3 4 5 6 7 8 9 10 11 |
l = ["a", "b", "c"] for i in l: print(i) """ a b c """ |
enemurate関数の利用
「enumerate」はリストのインデックス番号と要素を同時に返してくれるので、for文と相性がいいです。
今までとは違い、「for」の後に仮引数を2つ設定しましょう。
1 2 3 4 5 6 7 8 9 10 11 |
l = ["a", "b", "c"] for index, value in enumerate(l): print(index, value) """ 0 a 1 b 2 c """ |
配列のインデックスを指定するときと結果は同じですが「enumerate」の方がかっこいいです!
辞書で繰り返す
辞書は「key」と「value」をペアで保存できるリストのようなものです。
この辞書を繰り返す場合には、「item」を使うと便利で可読性も高くなります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
dic = {"A" : "a", "B" : "b", "C" : "c"} for key in dic: print(key, dic[key]) """ A a B b C c """ for key, value in dic.items(): print(key, value) """ A a B b C c """ |
仮引数の省略(アンダースコアの利用)
「for」文を使っていると仮引数はいらないけど繰り返したいという場合があると思います。
そのような時には「 _ 」(アンダーバー・アンダースコア)を使うと、無駄な変数が増えないため、よりよいコードになります。
1 2 3 4 5 6 7 8 9 |
for _ in range(3): print("ありがとう") """ ありがとう ありがとう ありがとう """ |
まとめ
最後まで読んでいただきありがとうございます。
今回は「for」文と「range」に関する繰り返し処理でよく使う書き方や、便利な方法をまとめました。
本記事が少しでも役に立てば幸いです。
無料の説明会を有効活用しよう!
独学での学習は孤独感を感じやすく挫折してしまう初心者も多いです。また、参考書を購入しても全く読む気にならないという方も多いはずです。
それでも、なんとかPythonの勉強を行い、高スキルなエンジニアを目指したいという方は無料で受けられるオンライン説明会に参加してみることも一つの手です。
Pythonというプログラミング言語は機械学習の人気の高まりなどもあり、様々なスクールが無料説明会を開催しています。
その中でも「Freeks(フリークス)|業界初!10,780円のサブスク型プログラミングスクール」がオススメです。Pythonを効率よく学びたいという方はまずは適性を知るためにも無料説明会を利用しましょう。
パソコン操作にお困りではありませんか?
ExcelやWordなど、基本的なソフトの使い方がいまいちわからないという方には、「PCHack」という講座をオススメしています。スクールの中でもコストパフォーマンスに優れ、オンラインなのでどこでも好きな時間に学習できます。
3万円ほどでPC初心者を脱出したい方は参考にしてください。
【PC初心者必見!】パソコンの勉強方法が分からないならPCHack講座がオススメ!