دورة تطوير بايثون المتقدمة
الفصل
>
المستوى
وحدات الرياضيات
وحدة الرياضيات الموسعة
الهدف
احسب امتدادات الأراضي الجديدة للمزرعة باستخدام المزيد من الدوال المستوردة من وحدة math.
عبر الجسر يوجد الملحق الذي يحتوي على بعض المكاتب المستخدمة لمسح الأراضي غير المدمجة التي تربط بين جزأين مختلفين من المزرعة. هنا سنجد بعض أبعاد الأراضي والقياسات، وقد يكون من الجيد ترتيبها وتوثيق البيانات. يمكنك إنجاز ذلك باستخدام وحدة math، ففي هذا المستوى سيتم تقديم مجموعة جديدة من الدوال التي يمكننا استخدامها لمعالجة البيانات. تستخدم نفس import math و math. قبل الدوال لاستخدام هذه المجموعة:
math.radians(): يحول الدرجات إلى نصف قطر/زوايا.math.floor(): يقرب الرقم إلى أدنى عدد أساسي.math.ceil(): يقرب الرقم إلى أعلى عدد.math.atan2(): يرجع القوس الظلاني بين رقمين بالنصف القطر.math.isclose(): يتحقق مما إذا كان الرقمان متقاربان من بعضهما البعض، يرجع true/false.math.fsum(): يجمع أرقام الفاصلة العائمة (العشرية) معًا من قائمة أو بيانات قابلة للتكرار.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() المكتوبة مسبقاً لإكمال المستوى.