こんにちは、コウキです。
今回はPythonのfor文について紹介します。
最低限の内容に絞って、わかりやすく丁寧に説明しているので、初心者の方も安心してください。
for文はプログラミングを行う上で絶対に必要な知識なので、頑張って理解しましょう!!
for文の基本的な書き方
まずはfor文の基本的な書き方について説明します。
for文の構造
for文は、ある回数だけ処理を繰り返すときに使います。
早速、Pythonのfor文の書き方を見てみましょう。
for 変数 in データの集まり:
処理
データの集まりとは、リストやタプル、文字列、辞書などのことです。
イテラブルオブジェクトとも言います。
データの集まりから一つずつ取り出して変数に入れ、処理を行います。
for文の使用例
さっきはfor文の構造について説明しました 。
ここでは実際に動かして確認してみましょう。
fruits = ["りんご", "バナナ", "メロン"]
for fruit in fruits:
print(fruit)
それでは、出力結果を見てみましょう。
りんご
バナナ
メロン
りんご、バナナ、メロン、と順番に出力されました。
どのような処理が行われているか順番に考えてみます。
まず、fruitsの中に3つの果物が入っています。
なので、これから3回繰り返しが行われます。
1回目のループでは
取り出した"りんご"はfruitという変数に入る。
取り出した"りんご"はprint文で画面に出力される。
2回目のループでは
取り出した"バナナ"はfruitという変数に入る。
取り出した"バナナ"はprint文で画面に出力される。
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文なんてしょっちゅう使いますので。
というわけで、今回は以上です。
それでは^^
コメント