【Python入門】繰り返しのfor文の基礎【初心者向け】

python

こんにちは、コウキです。

今回はPythonのfor文について紹介します。

最低限の内容に絞って、わかりやすく丁寧に説明しているので、初心者の方も安心してください。

for文はプログラミングを行う上で絶対に必要な知識なので、頑張って理解しましょう!!

for文の基本的な書き方

まずはfor文の基本的な書き方について説明します。

for文の構造

for文は、ある回数だけ処理を繰り返すときに使います。

早速、Pythonのfor文の書き方を見てみましょう。

for 変数 in データの集まり:
    処理

データの集まりとは、リストやタプル、文字列、辞書などのことです。
イテラブルオブジェクトとも言います。

データの集まりから一つずつ取り出して変数に入れ、処理を行います。

for文の使用例

さっきはfor文の構造について説明しました 。
ここでは実際に動かして確認してみましょう。

fruits = ["りんご", "バナナ", "メロン"]
for fruit in fruits:
    print(fruit)

それでは、出力結果を見てみましょう。

りんご
バナナ
メロン

りんご、バナナ、メロン、と順番に出力されました。

どのような処理が行われているか順番に考えてみます。

まず、fruitsの中に3つの果物が入っています。
なので、これから3回繰り返しが行われます。

1回目のループでは

fruitsの1番目に入っている"りんご"が取り出される。
取り出した"りんご"はfruitという変数に入る。
取り出した"りんご"はprint文で画面に出力される。

2回目のループでは

fruitsの2番目に入っている"バナナ"が取り出される。
取り出した"バナナ"はfruitという変数に入る。
取り出した"バナナ"はprint文で画面に出力される。

3回目のループでは

fruitsの3番目に入っている"メロン"が取り出される。
取り出した"メロン"はfruitという変数に入る。
取り出した"メロン"はprint文で画面に出力される。

これを見ればわかるように、同じ処理を3回繰り返していますが、毎回fruitの中身だけ変わっています。

これがfor文の基本的な動作です。

繰り返しを中止するbreak文

for文でループしていると、途中でループを抜けたくなる場合が出てきます。
そんなときはbreak文を使うことで、実現できます。

名前のリストを例に見ていきましょう。

names = ['田中太郎', '佐藤大輔', '木村優太', '佐藤優希', '鈴木実', '佐藤幸子']
for name in names:
    if name == '木村優太':
        print('木村優太さんが見つかりました')
        break

出力結果です。

木村優太さんが見つかりました

これは、名前のリストの中に'木村優太'が入っていた場合に、「木村優太さんが見つかりました」と表示するプログラムです。

名前のリストの中に'木村優太'が入っていない場合は何も表示されません。

このように途中で条件を満たしたら、その後の繰り返しを実行する必要のない場合や、実行を中止しなければいけない場合にbreak文を使うと便利です。

実はこの例では、for文を使わずに簡単に書くこともできます。

names = ['田中太郎', '佐藤大輔', '木村優太', '佐藤優希', '鈴木実', '佐藤幸子']
if '木村優太' in names:
    print('木村優太さんが見つかりました')
else:
    print('木村優太さんが見つかりませんでした')

こっちの方が、速くて簡単で圧倒的に良いのですが、今回は説明のためということでfor文を使っています。
見つからなかった場合の処理も追加していますが、for文でのやり方も後で説明します。

ただし、複雑になるとfor文を使わないとできないことも多いので、基本的な使い方は覚えておきましょう。

途中でスキップするcontinue文

続いてcontinue文について説明します。
今度は、ある条件のときに処理をスキップしたいときに使います。

もう一度、名前のリストを例に見ていきましょう。

names = ['田中太郎', '佐藤大輔', '木村優太', '佐藤優希', '鈴木実', '佐藤幸子']
for name in names:
    if '佐藤' not in name:
        continue
    print(name)

それでは出力結果を見てみましょう。

佐藤大輔
佐藤優希
佐藤幸子

これは、佐藤さんだけを表示するプログラムです。

佐藤という文字列が名前に含まれていない場合はcontinue文を通るため、後ろのprint文がスキップされて出力されません。

不要なデータを除外するときなどに使えそうですね。

for文でelse句を使う

Pythonのfor文ではelse句を使うことができます。
これは他の言語にはない特徴です。

else句を使うと、for文が最後まで実行されたときだけ、実行される処理を記述することができます。

これも同様に名前のリストを例に見ていきましょう。

さっきのbreak文のプログラムでは、見つからなかったときに何も出力されませんでした。
見つからなかった場合もメッセージを表示しないと不親切ですね。

しかし、出力をしようにも、for文の後ろに書いてしまっては、結果に関係なく出力されてしまいます。

そんなときは、このようにelse句を使えば実現できます。

names = ['田中太郎', '佐藤大輔', '木村優太', '佐藤優希', '鈴木実', '佐藤幸子']
if '木村優太' in names:
    print('木村優太さんが見つかりました')
else:
    print('木村優太さんが見つかりませんでした')

それでは、出力結果を見てみましょう。

木村優太さんが見つかりました

次はnamesの中身を変えて、同じプログラムをもう一度実行します。

names = ['田中太郎', '佐藤大輔', '木村雄大', '佐藤優希', '鈴木実', '佐藤幸子']

出力結果です。

木村優太さんが見つかりませんでした

これでうまく出力されるようになりました。

個人的には使用頻度はそこまで多くないですが、覚えておいて損はないと思います。

最後に

for文の基本的な使い方についてはこれで終わりです。
初心者の方はここまで理解できれば、for文については十分だと思います。

最後に補足すると、Pythonのfor文は結構遅いです。
その代わりに色々なPythonらしい書き方が存在します。

僕もまだまだですが、Pythonらしい書き方ができるようになれば、より速く、シンプルなコードが書ける様になると思います。

もちろん、for文を使うことがPythonらしくないということではないですよ。
for文なんてしょっちゅう使いますので。

というわけで、今回は以上です。
それでは^^

コメント

タイトルとURLをコピーしました