「AIを学ぶ前に知っておくべきITの基礎~Pythonの制御構造(listとfor・whileループ2)~【予備知識編6】」

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/


コメント

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