دورة تطوير بايثون المتقدمة
الفصل
>
المستوى

وحدات الرياضيات
وحدة الرياضيات الموسعة

الهدف

حساب الامتدادات الجديدة للأرض في المزرعة باستخدام المزيد من الدوال المستوردة من وحدة math.

عبر الجسر يوجد الملحق الذي يحتوي على بعض المكاتب المستخدمة في مسح الأراضي غير المدمجة التي تربط بين جزأين مختلفين من المزرعة. هنا سنجد بعض أبعاد الأراضي والقياسات، وسيكون من الجيد فرزها وتوثيق البيانات. يمكنك تحقيق ذلك باستخدام وحدة math، في هذا المستوى سنُعرّف على مجموعة جديدة من دوالها التي يمكننا استخدامها لمعالجة البيانات. تستخدم نفس import math وmath. قبل الدوال لاستخدام هذه المجموعة:

  • math.radians(): يحول الدرجات إلى راديان / زوايا.
  • math.floor(): يقوم بتدوير الرقم إلى الأسفل إلى أقرب عدد صحيح.
  • math.ceil(): يقوم بتدوير الرقم إلى الأعلى إلى أقرب عدد صحيح.
  • math.atan2(): يُرجع الظل الظاهري (الأرك تانجينت) بين رقمين بالراديان.
  • math.isclose(): يتحقق مما إذا كان رقمين متقاربين، ويرجع true أو false.
  • math.fsum(): يجمع الأرقام العشرية (float) من قائمة أو مجموعة قابلة للتكرار.
  • math.dist(): يحسب المسافة بين نقطتين، على أن تكون القيم في شكل قائمة أو مجموعة قابلة للتكرار.

ابدأ بجمع البيانات الخام من المخططات عن طريق المشي إلى علامة X الضوئية فوق السجادة الحمراء والزرقاء. استخدم دالة read() لتحديد الأبعاد الخام اللازمة لأخذ القياسات. هذه القياسات مخزنة بالفعل في أربع ثوابت باسم: red_x , red_y , blue_x و blue_y.

بمجرد تحديد كلتا مجموعتي البيانات، اتجه إلى علامة 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)). افعل الشيء نفسه بالنسبة لـ 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). افعل الشيء نفسه بالنسبة لـ red_y في هذه العلامة، وبمجرد الانتهاء، استخدم دالة write() المعدة مسبقاً وأضف المتغيرين red_x وred_y لتدوينهما.

اتجه إلى علامة X الذهبية وواجه المكتب، هنا سننشئ متغيرين جديدين، data_a وdata_b. سنستخدم هنا دالة 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). استخدم دالة write() المعدة مسبقًا مع المتغير comparison في هذه العلامة.

انتقل إلى علامة X فوق السجادة البيضاء، وأنشئ قائمة باسم data_list وأضف data_a وdata_b بهذا الترتيب. أنشئ متغيرًا باسم total واستخدم دالة math.fsum() مع data_list كوسيط، كما يلي: total = math.fsum(data_list). استخدم المتغير total مع دالة write() المعدة مسبقًا في هذه العلامة.

انتقل إلى علامة X الداكنة فوق السجادة الصفراء وواجه المكتب، وقم بتحويل data_a وdata_b إلى قيم قائمة فردية، على سبيل المثال للمتغير data_a قم بـ: data_a = [data_a]. افعل الشيء نفسه بالنسبة لـ data_b لتحويل كلا المتغيرين إلى مجموعات قابلة للتكرار لاستخدامهما مع دالة math.dist(). أنشئ متغيرًا باسم distance واستخدمه لتخزين قيمة math.dist()، مستخدمًا data_a وdata_b كوسائط لها. استخدم المتغير distance مع دالة write() المعدة مسبقاً لإكمال المستوى.

كتاب الكود