上級Python開発コース
チャプター
>
レベル
数学モジュール
数学モジュール拡張
目標
math モジュールからインポートした追加の関数を使用して、農場の新たな土地拡張を計算する。
橋を渡ると、別館には農場の二つの異なる部分を結合する未組み入れの土地を測量するためのオフィスがあります。ここでは、土地の寸法や測定値を見つけ出し、それらを整理してデータとして記録するのが良いでしょう。これを実現するために math モジュールを使用します。このレベルでは、データ処理に利用できる新たな関数群が紹介されます。これらの関数を使用する際は、同じく import math を行い、関数の前に math. を付け加えます。
math.radians(): 度をラジアン(角度)に変換します。math.floor(): 数値を下方向に丸めて基数にします。math.ceil(): 数値を上方向に丸めてより大きな数にします。math.atan2(): 2 つの数値間のアークタンジェントをラジアンで返します。math.isclose(): 2 つの数値が互いに近いかどうかをチェックし、true または false を返します。math.fsum(): リストまたはイテラブル内の浮動小数点数値を合計します。math.dist(): 2 点間の距離を計算します。値はリストまたはイテラブルである必要があります。
赤と青のカーペット上のライトの X マークに向かって歩きながら、チャートから生データの収集を開始します。read() 関数を使用して、測定に必要な生の寸法を特定します。これらの測定値はすでに red_x、red_y、blue_x、および blue_y という 4 つの変数定数に格納されています。
両方のデータセットが特定されたら、オレンジのカーペット上のダークな X マークに向かい、机の前に立ちます。math.radians() と math.ceil() を使用して、blue_x と blue_y 変数をラジアンに変換し、切り上げます。定数が編集可能な小数であることを保証するために float() を使用してください。例えば、blue_x 変数の場合、ラジアンに変換するには
blue_x = math.radians(float(blue_x))
とし、切り上げるには
blue_x = math.ceil(float(blue_x))
とします。同様に、この X マークで blue_y も処理し、完了したら用意された write() 関数を使用して blue_x と blue_y 変数を記録します。
緑のカーペット上のダークな X マークに向かい、math.radians() と math.floor() を使用して、red_x と red_y 変数をラジアンに変換し、切り捨てます。例えば、red_x 変数の場合、ラジアンに変換するには
red_x = math.radians(red_x)
とし、切り捨てるには
blue_x = math.floor(red_x)
とします。同様に、この X マークで red_y も処理し、完了したら用意された write() 関数を使用して red_x と red_y 変数を記録します。
ゴールドの X マークに向かい、机の前に立ちます。ここで新たに data_a と data_b という 2 つの変数を作成します。各データセットのアークタンジェントを算出するために、math.atan2 関数を使用して値を保存します。例えば、data_a では blue_x と blue_y 変数を使って関数を実行します。このように:
data_a = math.atan2(blue_x,blue_y)
data_b については、同様に red_x と red_y を用います。処理が完了したら、用意された write() 関数を使用して、data_a と data_b 変数を記録します。
下部の机の処理が完了したら、紫のカーペット上のダークな X マークに向かい、comparison という変数を作成します。そして、math.isclose() 関数を使い、data_a と data_b を引数として渡します。このように:
comparison = math.isclose(data_a, data_b)
そして、この X マークで用意された write() 関数を comparison 変数とともに使用します。
白いカーペット上の X マークに移動し、data_list というリストを作成して、その順番で data_a と data_b を追加します。次に total という変数を作成し、data_list を引数として math.fsum() 関数を使用します。このように:
total = math.fsum(data_list)
そして、この X マークで用意された write() 関数を total 変数とともに使用します。
黄色のカーペット上のダークな X マークに移動し、机の前に立ちます。data_a と data_b を個々のリスト値に変換します。たとえば、data_a の場合は
data_a = [data_a]
とし、data_b も同様に変換して、両方の変数をイテラブルにします。これにより、math.dist() 関数で使用できるようになります。次に distance という変数を作成し、math.dist() の結果をこの変数に格納します。引数として data_a と data_b を渡します。最後に、この X マークで用意された write() 関数を使用して distance 変数を記録し、レベルを完了させます。