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

数学モジュール
演算子モジュール

目的

operatorモジュールを使用して、新たな農地建設資材の注文を検証および割り当てる。

付属棟の上階には、新たな土地開発に必要な建設資材の在庫と注文の記録を保持するオフィスがいくつかあります。建設に使用される資材を確認し、計算するためのツールは多種多様で、数学や統計モジュールに加えて、operatorモジュールを使用することができます。

このモジュール、import operator、は演算子計算を簡略化し、それらを便利に関数へまとめるために使用されます。計算結果を格納するオブジェクトを作成する必要がなく、これらの関数は最適化だけでなく、値の生成にも使用できます。

  • operators.eq(): 2つの引数を取り、引数同士が等しいかどうかをチェックします。
  • operators.lt(): 2つの引数を取り、最初の引数が2番目の引数よりも小さいかどうかをチェックします。
  • operators.gt(): 2つの引数を取り、最初の引数が2番目の引数よりも大きいかどうかをチェックします。
  • operators.floordiv(): 2つの引数を取り、最初の引数を2番目の引数で割り、math.floor()相当の切り捨てを行います。
  • operators.mod(): 2つの引数を取り、両者の割り算の余りを返します。
  • operators.contains(): リストと共に使用される関数で、2つの引数を取ります。最初の引数はリスト、2番目の引数はリスト内に存在するか確認したい値です。値が存在すれば true、存在しなければ false を返します。
  • operators.concat(): 2つのリスト引数を取り、1つの関数でこれらを結合します。他の方法よりも簡潔である場合があります。
  • operators.countOf(): 2つの引数を取り、リストと特定の値をチェックし、その値がリスト内に何回現れるかを返します。

まずは、赤、青、緑のカーペット上にある暗いXマークの場所へ向かって歩きます。ここには6つの定数があります: red_orderblue_ordergreen_order は資材の注文を、red_reqblue_reqgreen_req は建設に必要な資材の量を表しています。

赤いカーペット上の暗いXマークでは、read()関数を使用して必要な資材の量をチェックします。red_verification という変数を作成し、operator.eq() 関数を red_orderred_req の定数で使用します。例:red_verification = operator.eq(red_order,red_req) 。事前に用意された write() 関数で red_verification の結果を表示します。

青と緑のXマークでも同じプロセスを繰り返し、read() 関数を使用して変数 blue_verificationgreen_verification を作成します。青の変数には、注文が必要量より少ないかどうかを確認するために、blue_orderblue_req の定数を使った operator.lt() の値を格納し、緑の変数には、注文が必要量より多いかどうかを確認するために、green_ordergreen_req の定数を使った operator.gt() の値を格納します。それぞれのカーペットに対応する事前に用意された write() 関数を使用し、検証結果を表示します。

次に、明るいXマークの場所へ歩き、デスク上で read() 関数を使用して、すでに出荷中の注文を確認します。注文簿には、2つの定数変数 main_ordersub_order の値、および資材を分割するセクション数が記されています。注文簿を確認した後、allocations という変数を作成し、operator.floordiv() を使用して main_order の値を注文簿に記載されたセクション数で割り、切り捨てた結果を格納します。例:allocations = operator.floordiv(main_order, -add sections-) 。事前に用意された write() 関数を使用して、allocations 変数の結果を記録します。

金のXマークの場所へ歩き、remainder という変数を作成します。ここでは、operator.mod() の結果を格納し、main_ordersub_order の両定数を用いて2つの注文の余りを求めます。デスク上で事前に用意された write() 関数を使用して、remainder 変数の結果を記録します。

紫のカーペット上の暗いXマークへ向かい、ここでは建設に必要なツールの配達状況を確認します。2つのリスト定数 delivery_1delivery_2 があり、最初の配達でツールが配達されたかどうかを確認します。tools という変数を作成し、operator.contains() の結果を格納します。最初の引数に delivery_1 リスト、2番目の引数に文字列 "tools" を指定します。例:tools = operator.contains(delivery_1,"tools") 。その後、デスク上で事前に用意された write() 関数を使用して、tools 変数によりツールが正常に配達されたかを記録します。

次に、すべての配達内容を確認します。白いカーペット上の暗いXマークへ向かい、materials というリストを作成します。これに、delivery_1delivery_2 のリストを引数として使用し、operator.concat() の結果を格納します。これにより、2つのリストが迅速に1つのリストに統合されます。デスク上で事前に用意された write() 関数を使用して、materials 変数により、すでに配達された建設資材すべてを記録します。

最後に、オレンジのカーペット上の暗いXマークへ向かいます。ここには、建設開始に必要な前提条件が記されており、その中でも特に重要なのは、開始時に必要な木材のトン数です。全ての配達で配達された木材の量を確認し、それを発表します。operator.countOf() 関数とともに speak() 関数を使用します。最初の引数に先ほど作成した materials リストを指定し、続いて文字列 "wood" を加えます。これにより、materials リスト内で木材が現れる回数が返されます。これは、operator関数が値を格納するオブジェクトを使用せずに単独で利用できることを示しています。例:player.speak(operator.countOf(materials,"wood")) 。これでレベルが完了します。

コードブック