進捗

2/22 20:30~23:15 p.245~p.247

while Trueがついた状態で、for(インデントを下げた中にif文とbreakあり)とelse(戻り値としてxを返す)とx += 1が同じラインで揃って上から下へと書かれている。この場合、forで要素を取り出してifの条件式を繰り返す。
結果、ifに当てはまらなかった場合、繰り返しのforから外れてelseの処理を行い、xを返す。
一方、ifに当てはまった場合、ifのインデントを下げた部分の処理を行いbreakで抜け出し、下って、x += 1を行う。else文にreturn xが書いてあるので、x += 1のxが返される。

  • ジェネレータはイテレータを作ることができる。
  • *が出てjupyter notebookが動かない時は処理がおかしい。コードを見直す。restartlearoutputする。

ジェネレータ関数を使う場合の流れ。

ジェネレータ関数を作って定義する。→イテレータが返ってくる。→next関数でイテレータの要素を得る。
→ここでジェネレータ関数の中身が実行される。→yieldの結果が関数外へと渡される。

備考、ジェネレータ関数で作ったイテレータ、つまりyieldの結果が必ずしもiterable、反復可能になるとは限らない。