1. はじめに:制御構造を学ぶ理由(前回の続き)
前回の 「予備知識編5」 では、Pythonの基本として list について学びました。
今回は、プログラムをより柔軟に動かすための「listと制御構造のうちfor・whileループ2」 を学びます!
✅list → 複数の変数を1つの変数に格納(前回)
✅forループ → 条件に応じて処理を分ける(今回)
✅whileループ → 条件に応じて処理を分ける(次回)
*想像以上にforがボリュームあってwhileは後回し(すいません)
これらを理解すると、Pythonでより実用的なプログラムが作れるようになります!
では、さっそく学んでいきましょう!🚀
その前に前回の記事を見ていない方はそちらをご覧ください。
*今回の記事は前回とセットです。
https://ganbaruzooooofufufu.com/「aiを学ぶ前に知っておくべきitの基礎pythonの制御構-2/
2.ループ処理(forループ)
前回最初に提示したコードを載せます。
年齢を判別するコードです。
#20歳以上か否かを確かめるコード
#forループを使わない
#年齢
age1 = 18
age2 = 24
age3 = 10
age4 = 15
age5 = 26
#前々回学んだif文
if age1 >= 20:
print("20歳以上です。")
else:
print("20歳未満です。")
if age2 >= 20:
print("20歳以上です。")
else:
print("20歳未満です。")
if age3 >= 20:
print("20歳以上です。")
else:
print("20歳未満です。")
if age4 >= 20:
print("20歳以上です。")
else:
print("20歳未満です。")
if age5 >= 20:
print("20歳以上です。")
else:
print("20歳未満です。")
👉 実行結果:
「20歳未満です。
20歳以上です。
20歳未満です。
20歳未満です。
20歳以上です。」 🎉
今回はこちらのコードをループ処理していこうと思います。
まずは、次のコードで変数をlistにします。
#このコードは実行しない
#年齢
#list変数に各値を格納
ages = [18, 24, 10, 15 ,26]
前回の記事でlistについて学んでいます。
https://ganbaruzooooofufufu.com/「aiを学ぶ前に知っておくべきitの基礎pythonの制御構-2/
次にお待ちかねのループ処理(for)を使ってみましょう。
#20歳以上か否かを確かめるコード
#forループ使用
#年齢
ages = [18, 24, 10, 15 ,26]
#for
for age in ages:
if age >= 20:
print("20歳以上です。")
else:
print("20歳未満です。")
👉 実行結果:
「20歳未満です。
20歳以上です。
20歳未満です。
20歳未満です。
20歳以上です。」 🎉
こちらのコードがforループを使った処理です。
一番上のコードと実行結果が同じですね。
このように同様の処理をする際にコードもスッキリして手直しも楽になりますね。
例えば次の修正依頼をされた場合
①20歳、30歳、40歳を追加して
②22歳以上かを確かめるコードにして
#22歳以上か否かを確かめるコード
#年齢
ages = [18, 24, 10, 15 ,26, 20, 30 ,40]
#for
for age in ages:
if age >= 22:
print("22歳以上です。")
else:
print("22歳未満です。")
👉 実行結果:
「22歳未満です。
22歳以上です。
22歳未満です。
22歳未満です。
22歳以上です。
22歳未満です。
22歳以上です。
22歳以上です。」 🎉
赤くした箇所だけ追加・修正しました。楽ちんですね!
次に公式を見ていきましょう。
#公式
for 変数 in イテラブル:
処理 #空白4つあける
こちらがforループ構文の公式です。
イテラブルとは「要素を1つずつ返す(渡す)ことができるオブジェクト」
という意味を持ちます。*後ほど説明します。
今回のイテラブルはlist変数であるagesです。
またオブジェクトという言葉も本記事では初見ですね。
オブジェクトはもの(要素)という意味で、プログラミングではよく使う言葉のようです。
今回オブジェクトはagesを指します。
①イテブラル(今回はages)が変数(今回はage)に要素を一つ渡します。
②要素を渡された変数が処理(今回の場合if文とプリント)されていく流れとなるのです。
③②が終わり次第、イテラブルに要素が残っていたら①に戻り、
イテラブル(ages)の次の要素を変数(age)に渡します。
イテラブルに要素が残っていなかったらforループが終了します。
今回はagesの要素数は 5 ですので5回分①~③が行われます。
今回の場合で詳しく解説すると
①変数(age)にイテラブルの1要素(ages[0])を渡す(代入)
②ageが20歳以上か判断する処理(if文)
③イテラブル(ages)にまだ4要素あり!→①に戻る
①変数(age)にイテラブルの1要素(ages[1])を渡す(代入)
②ageが20歳以上か判断する処理(if文)
③イテラブル(ages)にまだ3要素あり!→①に戻る
①変数(age)にイテラブルの1要素(ages[2])を渡す(代入)
②ageが20歳以上か判断する処理(if文)
③イテラブル(ages)にまだ2要素あり!→①に戻る
①変数(age)にイテラブルの1要素(ages[3])を渡す(代入)
②ageが20歳以上か判断する処理(if文)
③イテラブル(ages)にまだ1要素あり!→①に戻る
①変数(age)にイテラブルの1要素(ages[4])を渡す(代入)
②ageが20歳以上か判断する処理(if文)
③イテラブル(ages)にはもう要素はなし→終わり
このような流れでプログラムが動いています。
下記がforループの処理を図に表したものです。

3.イテラブル
🌵イテラブルってつまりlistでしょ?なんで難しい呼び方をしているのでしょうか?
listではなく何故、イテラブルという言葉を使っているのか説明します。
上記の内容はに限ってはイテラブル = listと捉えて頂いて大丈夫です。
わざわざイテブラルと言い直すのは、list以外にもイテラブル(つまり複数の要素をもつオブジェクト)
があるんです!
名前を列挙すると、
- tupul(タプル)
- 文字列
- dict(辞書)
- range(長さ・大きさ
などなど・・・他にもイテラブルを作る方法はあります。
ここで挙げたものに関しては、解説は省きます。
というのも、混乱しないようにと思ったからです。
#公式
for 変数 in イテラブル:
処理 #空白4つあける
先ほども同じ公式を挙げましたが、イテラブルが変わるだけです。
「イテラブルが持つ複数の要素を1つずつ、変数(ここで言う変数はforの後に宣言するもの)に渡して処理」
を繰り返すだけです。
この先の例文や実際のコードで出てきた際に説明できたらと思います。
4.まとめ
✅forループは繰り返しの処理に適している
✅修正しやすさ、読みやすさを向上
✅イテラブルは複数の要素を持ち、1つずつ渡せる
(📕言い訳タイム)
本記事でwhileを紹介したかったですが、1つ1つゆっくり覚えていきましょう!
ということで次回に回します。
正直、if文より理解が難しいと思います。
実際に使うコードはもっと複雑で入り組んでいるそうです。
そこで次回のwhileが終わったら、長いコードに慣れる練習でもしましょうか、、
📌 次回:「ループを学ぼう!(予備知識編7)」
次回の記事では、
プログラムをより柔軟にする「listと繰り返し処理(for・while)2」について解説します!
ループは今回の続きとなりますので是非、早めに覚えていきましょう。
記事に誤りや誤解を生む表現など不適切な文面・資料がございましたら教えていただけると幸いです。
最後に本記事を書くに当たって参考にしたURLです。
Python公式ドキュメント: https://docs.python.org/ja/3/
Pythonチュートリアル(入門): https://www.w3schools.com/python/
PyQ(Python学習サイト): https://pyq.jp/
コメント