1ヶ月でWebデザイン・プログラミングスキルをオーダーメイドのカリキュラムで学べるスクール、それがWebCamp。

【Python入門】for文を使った繰り返し文の書き方

【Python入門】
Pocket

プログラミングの基本は「条件分岐」と「繰り返し」からなります。繰り返しにはfor文または while文で行い、条件分岐にはif文を使います。他の言語ではswitch文という機能もありますが、Pythonではシンプルにif文のみが用意されています。今回はfor文での繰り返し文の書き方について記述します。

while文、if文の使い方については別の記事にまとめていますので、下からご覧ください。

Python
Python

繰り返しという意味では同じのfor文とwhile文ですが、その違いはfor文では繰り返しの制御に関する条件を全て1文にまとめることです。
そのため、初期化、継続の判定、変数の更新処理が単純なら、一目で全部に目を通せるfor文の方が好まれ、逆に複雑な場合はwhile文が好まれます。

Pythonのfor文とは?

for文の構文は以下のようになります。

for文の流れは原則、「データの集まり」から、「データを一つずつ取り出す」という流れです。「データの集まり」部分には、様々なオブジェクトを置くことが可能です。自分で作成したクラスも、ある一定のルールを守ればそこに置くことができます。

「変数」は、データの集まりから取り出したオブジェクトにアクセスするための名前です。
ここには好きな名前を記述することができ、「〇回ループする」という処理ならば慣習としてよく使う「i, j, k」や、「index」「counter」等の名前が、「文字列から1文字ずつ取り出す」ならば「char」、「データベースやテキストファイルから1行取り出す」場合は「row」等の名前がよく使われます。

例えば、’Hello’という文字列を一文字づつ取り出し表示する処理は以下のようになります。

<実行結果>

H
e
l
l
o
終了

これは、まず「Hello」の「H」がcharという変数名に代入されます。
print(char)で、最初は「H」と表示されます。
次は「e」がchar変数に渡されてprint(char)で表示され、その後e、l、l、oと同様の処理が行われます。

以下は、全て「データの集まり」部分に置くことができます。

文字列 – ‘Python’
リスト – [‘perl’, ‘python’, ‘php’, ‘ruby’]
タプル – (‘perl’, ‘python’, ‘php’, ‘ruby’)
セット – {‘perl’, ‘python’, ‘php’, ‘ruby’}
辞書 – {‘language': ‘Python’, ‘frame_work': ‘Django’}
終了

for文にrange関数を使用した繰り返し文

繰り返し処理で一番多いのは、「指定回数繰り返す」という処理でしょう。
Pythonのfor文では、「range関数」と呼ばれるものを使います。

5回繰り返すfor文のサンプルは、以下のようになります。

<実行結果>

0
1
2
3
4
終了

少し分かりづらいと感じる方も多いのですが、最初にiに入るのは0です。
0、1、2、3、4が順番に表示されます。
もしこれが嫌だ、ということであれば以下のようにできます。

<実行結果>

1
2
3
4
5
終了

もし1から100までループを行うならば、range関数は以下のようになります。

for文とif文を使った条件分岐

繰り返し処理を行いつつ、ある条件によって処理を変えることは非常によくあります。
1から10まで繰り返し、3の倍数のときだけ表示する処理を書いてみます。

# 1から10までなので、range(1, 11)です

<実行結果>

3
6
9
終了

もちろん、elifやelse等も書くことができます。
for文の中であっても、if文の機能は特に変わりません。

break-continue文

whileループと同様に、brakeでのループの中止や、continueでの次のループへのジャンプもサポートされています。

次のサンプルコードは、リストの中から「python」という文字列を探し、一致していれば「OK」と表示しループを抜け、そうでなければ文字列を表示します。

実行結果

ruby
OK
終了

breakでループを抜けたので、以降の文字列は表示されていません。
continueで同じ動作をするものを作ると、以下のようになります。

処理にもよりますが、continueはそこまで使用頻度も高くないため、breakを覚えておけば基本的には問題ありません。

for-else文

while文と同様、elseも使うことができます。

以下は、テストの点数をまとめたリストがあり、70点以下がなければ「合格」と表示されます。

このelseブロックには、breakがない場合のみ入る、と覚えると混乱せずに済みます。今回は70点以下がなくbreakはなかったため、elseブロックに入り「合格」と表示されました。一度もループしなくてもelseに入る点に注意です。今回の例であれば、テストを受けてなくても(リストが空でも)合格になります。

for-else文は意味が直感的でなく、敬遠する方も多くいます。
少し分かりづらければ、無理に使う必要はないでしょう。

投稿者:プロスタ編集部

  • このエントリーをはてなブックマークに追加

おすすめスクール

全国30校舎で展開されるヒューマンアカデミーのWeb講座は修了者数4万人超、講師とカリキュラムの満足度がどちらも9割を超えています。就職や転職に必要なレベルの実務スキルを身に付けられます。

WebCampは、一ヶ月の短期集中でWebデザイン、プログラミングスキルを習得するスクールです。学習効果の高い反転授業(自主学習でインプット、講義でアウトプット)を採用し、年間1000名を輩出しています。

この記事が気に入ったら
いいね!しよう

プロスタの最新情報をお届けします

あわせて読みたい

関連記事

イチ押しランキング

1リナックスアカデミー

リナックスアカデミー

2システムアーキテクチュアナレッジ

システムアーキテクチュアナレッジ

3WEB塾

WEB塾

メールマガジン

ページ上部へ戻る