التمرين الأول: بناء الدوال وإعادة استخدامها اختر الإجابة الصحيحة بعد تحليل مفهوم الدالة أو تتبع المقطع البرمجي. يحتاج برنامج إلى حساب مساحة المستطيل في مواضع متعددة. ما الفائدة الأهم من وضع عملية الحساب داخل دالة واحدة؟ شرح السؤال فكّر في عدد المواضع التي ستحتاج إلى تعديلها إذا تغيرت طريقة الحساب. اختر الحل الذي يجمع المنطق المتكرر تحت اسم واحد. منع البرنامج من استقبال قيم مختلفة للعرض والارتفاع إعادة استخدام الحساب وتعديله لاحقًا في موضع واحد تشغيل عملية الحساب تلقائيًا من دون استدعاء الدالة تحويل ناتج المساحة دائمًا إلى نص الإجابة الصحيحة: إعادة استخدام الحساب وتعديله لاحقًا في موضع واحدتجمع الدالة منطق حساب المساحة في موضع واحد يمكن استدعاؤه كلما لزم، فإذا تغير المنطق عُدّل تعريف الدالة بدل البحث عن نسخ متكررة منه.يحقق ذلك مبدأ لا تكرر نفسك أو DRY، ويساعد على تقليل الأخطاء وتحسين قابلية صيانة البرنامج. أي سطر يعرّف دالة صحيحة باسم calculate_total من دون معاملات؟ شرح السؤال يبدأ تعريف الدالة بكلمة مفتاحية ويتبعه الاسم والأقواس. تحقّق من العلامة التي تنهي سطر التعريف. function calculate_total(): def calculate_total: def calculate_total(): def calculate_total() الإجابة الصحيحة: def calculate_total():يبدأ التعريف بالكلمة def، ثم يأتي اسم صالح للدالة، وقوسان فارغان لأنها لا تستقبل معاملات، ثم نقطتان رأسيتان لبدء جسم الدالة.لماذا الخيارات الأخرى خاطئة؟ حذف الأقواس أو النقطتين يجعل البنية ناقصة، واستخدام function غير صحيح لأن كلمة التعريف في بايثون هي def. ماذا يحدث عند تشغيل المقطع الآتي؟def say_hello(): print("مرحبًا") شرح السؤال ميّز بين إنشاء الدالة وتشغيل الأوامر الموجودة داخلها. ابحث عن سطر ينادي الدالة باسمها بعد التعريف. تُطبع مرحبًا مرتين يظهر خطأ لأن الدالة لا تحتوي على معاملات تُطبع مرحبًا مرة واحدة تُعرّف الدالة ولا يُطبع شيء الإجابة الصحيحة: تُعرّف الدالة ولا يُطبع شيءينشئ السطر الأول الدالة ويربط جسمها بالاسم say_hello، لكنه لا ينفذ الجسم. لا تظهر الرسالة إلا عند إضافة استدعاء مثل say_hello(). أي وصف يميّز المعامل parameter عن الوسيط argument؟ شرح السؤال قارن بين المتغير المكتوب في سطر تعريف الدالة والقيمة المقدمة عند الاستدعاء. حدّد أيهما مكان محجوز وأيهما بيانات فعلية. المعامل اسم في التعريف، والوسيط قيمة فعلية عند الاستدعاء المعامل قيمة مطبوعة، والوسيط اسم الدالة المعامل والوسيط اسمان مختلفان لدالة مدمجة المعامل يُكتب بعد return، والوسيط يُكتب بعد def الإجابة الصحيحة: المعامل اسم في التعريف، والوسيط قيمة فعلية عند الاستدعاءفي def greet(name): يُعد name معاملًا يستقبل قيمة لاحقًا، وفي greet("سارة") يُعد النص "سارة" وسيطًا فعليًا يُمرر إلى ذلك المعامل.