Coding for KidsCoding for Kids
المستويات الإبداعيةالتحدياتدليل المعلم
صوت للميزات
دورة تطوير بايثون المتقدمة
الفصل
>
المستوى

وحدات الرياضيات
مقدمة وحدة الرياضيات

الهدف

تحقق من صكوك الأراضي وخطوط الملكية في المزرعة، وتحقق من الأرقام باستخدام وظائف وحدة Math.

في المكتب الواقع عند حافة المبنى الرئيسي يوجد أرشيف للمخططات القديمة للمبنى وصكوك الأراضي. هناك خطط لتوسيع المزرعة نحو الشرق، لكن من المهم ترتيب جميع الأوراق قبل أن تقرر النظر في أي خطط إنشاء. سيتم ذلك باستخدام وحدة math الخاصة بلغة python.

import math

مثل وحدة statistics سابقاً، تحتوي وحدة math على مجموعة من الدوال الرياضية التي يمكننا استخدامها لتوسيع مكتبة python المدمجة:

  • math.isnan(): تتحقق مما إذا كانت القيمة المدخلة ليست رقمًا

  • math.isinf(): تتحقق مما إذا كانت القيمة المدخلة هي رقم لا نهائي

  • math.isfinite(): تتحقق مما إذا كانت القيمة المدخلة محدودة

  • math.prod(): تضرب جميع المعطيات المضافة

  • math.pow(): تأخذ معطيين وتعيد قيمة المعطى الأول مرفوعًا إلى قوة المعطى الثاني.

  • math.trunc(): تقصّر المعطى المقدم، هذا يزيل الجزء العشري من رقم الفاصلة، ليصبح عددًا صحيحًا. (لا يقوم بالتقريب، فقط الإزالة)

  • math.copysign(): تأخذ معطيين، تنسخ إشارة (سالبة أو موجبة) من المعطى الثاني وتطبقها على المعطى الأول.

  • math.factorial(): تأخذ معطى وتضرب الرقم بالعد التنازلي من الرقم حتى 1. على سبيل المثال، إذا كانت القيمة 5 فإنها تحسب: 5 x 4 x 3 x 2 x 1 وتنتج نتيجة.

سنستخدم هذه الدوال لمراجعة وتسجيل بعض البيانات من أجل إعداد مشاريع التطوير. هناك ثلاث ثوابت قائمة تحتوي على مخططات لأراضي المزرعة تسمى: red_schematics , green_schematics , blue_schematics. تحتوي هذه المخططات على قيم غير رقمية وغير صالحة للاستخدام، استخدم دوال math لتحديد العناصر، والعثور على البيانات الصالحة لكي نسجلها.

ابدأ بالسير نحو علامة X الداكنة فوق السجادة الحمراء، واستخدم حلقة للتكرار خلال عناصر ثابت القائمة red_schematics لتحديد العناصر الصالحة للاستخدام.

for x in red_schematics: y = math.isnan (float(x)) if y == True: player.speak("Not a Number") else: y = math.isinf(float(x)) if y == True: player.speak("Is infinite") else: player.speak(x)

ستتكرر الحلقة خلال جميع عناصر القائمة، حيث ستقوم دالة math.isnan() بتحديد الإدخالات غير الرقمية، ودالة math.isinf() ستحدد القيم اللانهائية التي لا يمكن استخدامها لغرض جمع البيانات. قم بإنشاء قائمة جديدة باسم red_values واستخدم تعبير قائمة (list comprehension) لإزالة العناصر غير المرغوب فيها من خلال استخدام math.isfinite() لتصفيتها، مثل هذا: red_values = [x for x in red_schematics if math.isfinite(float(x))] .

أضف بعد ذلك جميع الأرقام معًا باستخدام دالة math.prod() لجمع كل العناصر في القائمة، مثل هذا: red_values = math.prod(red_values) .

قم بإجراء نفس عملية الترشيح على علامات X الداكنة فوق السجاد الأخضر والأزرق، باستخدام الثوابت القائمة green_schematics و blue_schematics ودمج العناصر في قوائم باسم green_values و blue_values . اتجه نحو علامة X الذهبية، واجه المكتب واستخدم دالة write() المكتوبة مسبقًا في المحرر لتسجيل بيانات المخطط الصالحة. بمجرد أن تجمع كل شيء معًا، اتجه نحو علامة X الفاتحة واستخدم دالة open() للوصول إلى الغرفة التالية.

بمجرد دخولك الغرفة التالية، يوجد عدة مكاتب بها بعض صكوك الأرض والإحداثيات. من الجيد تسجيل بعض البيانات قبل الانتقال إلى التحقق من الإضافات الجديدة للمزرعة في المنطقة التالية عبر الجسر. اتجه نحو علامة X الفاتحة أمام الصندوق مع الخرائط بجانب المكتب الأول، واستخدم دالة read() للحصول على بيانات الفهرسة لصكوك الأراضي.

اتجه نحو علامة X الداكنة فوق السجادة البنفسجية، وأنشئ متغيرًا باسم purple_data واستخدم دالة math.pow() لضرب البيانات التي حصلت عليها للحصول على معلومات الإحداثيات. اجعل الفهرس مرفوعًا إلى القوة 3، مثل هذا: purple_data = math.pow( -index data- , 3 )، مع التأكد من إضافة بيانات الفهرسة التي قرأتها سابقًا. استخدم math.trunc() لإزالة البيانات العشرية من المتغير، مثل هذا: purple_data = math.trunc(purple_data) . وبمجرد الانتهاء، عند علامة X، استخدم دالة write() المكتوبة مسبقًا في المحرر مع purple_data لتسجيل البيانات المخزنة في المتغير.

لإنهاء المهمة، اتجه نحو علامة X الفاتحة أمام خزانة الملفات بجانب المكتب الأعلى. استخدم دالة read() للحصول على بيانات الفهرسة مرة أخرى، حيث يجب فك هذه البيانات لكشف المزيد من معلومات الإحداثيات للأرض. أنشئ متغيرًا باسم white_data لتخزين قيمة البيانات الموجودة في الملف ومتغيرًا باسم sign لتخزين رقم الإشارة الموجود في الملف. اتجه نحو علامة X الداكنة فوق السجادة البيضاء واستخدم دالة math.copysign() باستخدام المتغيرين اللذين أنشأتهما كمعطيات وقم بتعيين القيمة إلى white_data، مثل هذا: white_data = math.copysign(white_data,sign) .

بمجرد الانتهاء، مع white_data، استخدم math.factorial() لضرب الفهرس، قم بتحويل white_data إلى عدد صحيح واستخدمه مع الدالة، مثل هذا: white_data = math.factorial(int(white_data)) . استخدم دالة write() المكتوبة مسبقًا لتسجيل white_data لاستكمال المستوى.

كتاب الكود