yield するジェネレータ count_up を作って、1行ずつ表示しよう。yield を使うと、値を「1つずつ、必要になったときに」返す関数(ジェネレータ)が作れます。return が一度で終わるのに対し、yield は続きから何度も返せます。def three_words():
yield 'あ'
yield 'い'
yield 'う'
for w in three_words():
print(w) → あ い うyield のたびに1つ値が取り出され、次の yield から続きが再開します。count_up、引数 n を1つ受け取るn までの数を、小さい順に1つずつ yield するcount_up(5) を for でまわすと 1・2・3・4・5 が順に取り出せるyield が1つでもあると、その関数はジェネレータになるfor でまわすと、yield された値が順に取り出される1 2 3 4 5
全問正解でクエストクリア!
問題 1: 偶数だけを yield するジェネレータ even_gen(n) を作り even_gen(10) を表示しよう!
問題 2: フィボナッチ数列を yield するジェネレータで最初の6つを表示しよう!
問題 3: next() で yield の値を1つずつ取り出し、3回取り出した値の合計を表示しよう!