2
المعاملات والقيم الممرَّرة: مدخلات الدالة
ICT Prep 3 Term 1, Unit 1, Lesson 4: pp. 44–52
الهدفأميّز المعامل من القيمة الممرَّرة وأقرأ دالة لها معاملان.
كلمات جديدة
المعامل (parameter) · الاسم المكتوب بين قوسي التعريفالقيمة الممرَّرة (argument) · القيمة التي نعطيها في الاستدعاءTypeError · تظهر حين يكون عدد القيم في الاستدعاء خاطئًاالترتيب · تُطابَق القيم مع المعاملات من اليسار إلى اليمين
الشرح
كلمتان يسهل الخلط بينهما. المعامل اسم في التعريف مثل a وb في def add_numbers(a, b). والقيمة الممرَّرة هي القيمة في الاستدعاء مثل 3 و5 في add_numbers(3, 5). وتملأ القيم الممرَّرة المعاملات من اليسار إلى اليمين: تصبح a تساوي 3 وb تساوي 5 فيعرض البرنامج 8 وليس ٣٥. والترتيب مهم: subtract(10, 4) تعطي 6 أما subtract(4, 10) فتعطي -6. ويجب أن يتطابق العدد أيضًا. فـ add_numbers(3) تعطي قيمة واحدة لمعاملين، وتتوقف بايثون بخطأ TypeError. المعاملات مثل صناديق فارغة في التعريف، والاستدعاء هو الذي يقرر ما يوضع فيها كل مرة.
| الاستدعاء | a تأخذ | b تأخذ | يعرض |
|---|---|---|---|
| add_numbers(3, 5) | 3 | 5 | 8 |
| add_numbers(10, 20) | 10 | 20 | 30 |
| add_numbers(3) | 3 | لا شيء | TypeError |
أمثلة محلولة
Python
1def add_numbers(a, b): 2 result = a + b 3 print(result) 4 5add_numbers(3, 5) 6add_numbers(10, 20)
Output
8 30
Python
1def subtract(a, b): 2 print(a - b) 3 4subtract(10, 4) 5subtract(4, 10)
Output
6 -6
Python
1def add_numbers(a, b): 2 result = a + b 3 print(result) 4 5add_numbers(3)
Output
TypeError: the call is missing an argument
نشاط الفصل
اكتب دالة multiply(a, b) تعرض حاصل الضرب. اكتب استدعاءين وقل ما يعرضه كل منهما. ضع خطًا تحت المعاملات في التعريف وارسم دائرة حول القيم الممرَّرة في الاستدعاءين.
تدرّب
1
في def triangle_area(base, height) ما أسماء المعاملات؟
base وheight.
2
في print(triangle_area(6, 4)) أي قيمة تدخل في المعامل base؟
6 وهي القيمة الممرَّرة الأولى.
3
ماذا تعرض subtract(4, 10) إذا كانت الدالة تطبع a - b؟
-6.
4
لماذا تسبب add_numbers(3) خطأ؟
للدالة معاملان لكن الاستدعاء يعطي قيمة واحدة فقط (TypeError).