上級Python開発コース
チャプター
>
レベル

ジェネレーター
ジェネレーターを手動で進める

目的

調整された材料を手動でシーケンス化し、パンを作るための材料を生産するためにジェネレーターを使用します。

先に進むと、プレスを使ってパン生地を組み立てる施設があります。通常は combine() 関数を使って材料を組み合わせますが、今回は材料を組み合わせる前にまず精製が必要です。このタスクでは、ジェネレーターを使用することで異なるファイルタイプを出力できるだけでなく、関数やループのように自動的に出力されるのではなく、コマンドでそのシーケンスを呼び出すことができます。以下は例です:

def bread(): yield 5 yield "grain"

上記のコードには、2つの yield ステートメントが含まれるジェネレーターがあり、一つは実数を、もう一つは文字列を生成します。next() 関数を使用することで、任意にジェネレーターの値を生成できます。このように:

recipe = bread() # ジェネレーターをセットアップ player.place(next(recipe)) # 最初の値を呼び出す player.collect(next(recipe)) # 二番目の値を呼び出す

上記の例では、ジェネレーターがセットアップされ next() 関数をジェネレーターで使用して、最初の yield 値を place() 関数で使用するために呼び出しています。これが二番目の値でも繰り返されますが、今回は collect() 関数で使用します。これにより複数のリストや変数を使用せずに、さまざまなタイプの値をシーケンスで呼び出すことが容易になります。

コードエディタで bread() という名前のジェネレーターが定義されますが、パン生地を精製するためには各材料の量が必要です。これらの数字は施設の横にある看板に書かれています。ジェネレーターを使用するために、次のように参照します:recipe = bread()

最初にミルクタンクの横のライト X マークに歩いて行き、ジェネレーター next() 関数を使用して、タンク内の最後のミルクを collect() します。このように:player.collect(next(recipe))。次に、看板の隣のゴールド X マークまで歩き、speak() 関数を使用して、ジェネレーターがパンを生産するために必要な量の数字を取得し、それをジェネレーターに記入してください。データは "sign" という定数に格納され、このように呼び出されます:player.speak(sign)

すべての値をジェネレーターに入力したら、施設内へ進み、ダーク X マークに player.place(next(recipe)) を、ライト X マークに player.collect(next(recipe)) を使用してレベルを完了してください。

コードブック