Coding for KidsCoding for Kids
クリエイティブレベル挑戦教師ガイド
機能に投票
上級Python開発コース
チャプター
>
レベル

高度な関数
ラムダ関数

目的

ラムダ関数を使用して、後で出荷できるように消耗品の記録を残す。

畑にある一部の果物やベリーは、すぐに収穫できる状態に近づいており、保管、出荷、販売が可能です。収穫、出荷される製品数のおおよその見積もりを把握するために、収穫可能なアイテムを一覧にするのは良い考えです。

コードを最適化するために、ラムダ関数 を使用できます。これはカスタム関数を作成する別の方法ですが、作成する関数がシンプルな場合は高速です。

# Normal Custom Function def calculate(x , y , z) : return( (x+y+z) *2 ) # Lambda Function calculate = lambda x,y,z : (x + y + z) * 2

上記の例では、カスタム関数と ラムダ関数 の2種類の関数があります。記述方法は異なりますが、機能的には同じです。ラムダ関数 は、コードの途中で迅速にセットアップできるため、使いやすいという利点があります。ただし、複雑なコードシーケンスの場合は、通常の関数定義の方法も非常に有用です。

畑では、2種類のアイテムに分類できます: 「fruits」と「berries」。この2種類のうち、果物は3種類あり、applespearsoranges です。また、ベリーも3種類あり、redbluepurple です。

まず、上記で示した ラムダ関数 calculate をセットアップします。これにより、3つのアイテムを足してから2倍することで、そのシーズンの予測アイテム数を取得できます。次に、カスタムの speak 関数として、収穫するアイテムを見積もるための ラムダ関数 estimate を作成します。最後に、2つの値を足して、3番目の値である loss を引く ラムダ関数 total をセットアップします。

# Calculate items calculate = lambda x,y,z : (x + y + z) * 2 # Estimate items estimate = lambda number , name : player.speak( "I estimate %d %s this season" % (number,name) ) # Total all items total = lambda num1, num2, loss : ( (num1 + num2) - loss)

3種類の果物それぞれについて変数を作成し、畑にある各果物の個数を足してください。暗い X マークの場所まで歩き、3つの果物変数を使って ラムダ関数 calculate() を使用し、その値をカスタム変数 fruit_number に格納します。例: fruit_number = calculate(orange,pear,apple) 。次に、estimate() ラムダ関数 を使い、fruit_number を数字として、"fruits" を名前として渡します。例: estimate(fruit_number, "fruits" )

果物が完了したら、明るい X マークの場所まで歩き、同様にベリーについても実施してください。畑に数えたブッシュの数をもとに、3種類のベリーの変数をセットアップし、その後、果物の場合と同様に ラムダ関数 をセットアップします。例: berry_number = calculate(red,blue,purple) 。次に、estimate ラムダ関数berry_number"berries" を引数として使用してください。

定数 doc には、先月の製品ロスの見積もりが保存されています。倉庫に移動し、金の X マークの方向に歩いて、テーブル上の書類を読み取るために speak() 関数を使用し、先月の数字を確認してください。

先月の数字が把握できたら、紫のカーペットの上にある暗い X マークの方向に歩き、テーブルに向かって今月の合計を決定してください。変数 season を作成し、fruit_numberberry_number を数値として使用し、doc 定数から得られた数字をロス引数として使用して計算します。例: season = total(berry_number,fruit_number, number found in doc constant)

最後に、estimate() ラムダ関数 を使用して、season 変数を数字、"products" を名前の引数として渡し、レベルを完了してください。

コードブック