You are on page 1of 4

‫يمكنك بناء الدوال في ‪ Python‬باستخدام الكلمة المحجوزة "‪ ،"def‬وذلك لتعريف وتنفيذ تعليمات محددة‪ .

‬التعليمات‬
‫الموجودة داخل الدالة تنفذ عندما يتم استدعاء الدالة‪ .‬إليك مثال عن كيفية بناء دالة في ‪:Python‬‬

‫‪def greet():‬‬
‫)"!مرحًبا"(‪print‬‬
‫)"كيف يمكنني مساعدتك؟"(‪print‬‬

‫استدعاء الدالة ‪#‬‬


‫)(‪greet‬‬
‫‪output:‬‬

‫!مرحًبا‬
‫كيف يمكنني مساعدتك؟‬

‫في المثال أعاله‪ ،‬تم بناء دالة تسمى `‪ `greet‬تقوم بطباعة رسالة ترحيبية‪ .‬عند استدعاء الدالة باستخدام اسمها `‬
‫‪ ،`)(greet‬يتم تنفيذ التعليمات الموجودة داخل الدالة‪.‬‬

‫يمكنك أيًض ا تعريف دالة تأخذ وترجع قيم‪ .‬على سبيل المثال‪ ،‬يمكننا تعريف دالة لحساب مربع عدد‪:‬‬

‫‪def square(x):‬‬
‫‪return x ** 2‬‬

‫استدعاء الدالة وطباعة النتيجة ‪#‬‬


‫)‪result = square(5‬‬
‫)‪print(result‬‬
‫‪output:‬‬

‫‪25‬‬

‫في هذا المثال‪ ،‬تم تعريف دالة تسمى `‪ `square‬تأخذ معامل واحد `‪ .`x‬تقوم الدالة بإرجاع القيمة المربعة للمعامل‬
‫المعطى باستخدام العملية `‪ .`x ** 2‬عند استدعاء الدالة `)‪ُ ،`square(5‬ترجع القيمة ‪ 25‬وتتم طباعتها‪.‬‬

‫يمكنك أيًض ا تعيين قيم افتراضية للمعامالت في الدوال‪ .‬هذا يعني أنه إذا لم يتم تمرير قيمة للمعامل عند استدعاء الدالة‪،‬‬
‫فستستخدم قيمته االفتراضية‪ .‬على سبيل المثال‪:‬‬

‫‪"):‬مجهول"=‪def greet(name‬‬
‫)‪،", name‬مرحًبا"(‪print‬‬

‫"ستطبع "مرحًبا‪ ،‬مجهول ‪greet() #‬‬


‫"ستطبع "مرحًبا‪ ،‬أحمد ‪") #‬أحمد"(‪greet‬‬
‫‪Output:‬‬

‫مرحًبا‪ ،‬مجهول‬
‫مرحًبا‪ ،‬أحمد‬

‫في هذا المثال‪ ،‬تم تعريف دالة `‪ `greet‬التي تأخذ معامل واحد `‪ `name‬بقيمة افتراضية "مجهول"‪ .‬عند استدعاء الدالة‬
‫بدون تمرير قيمة للمعامل‪ ،‬تقوم الدالة بطباعة "مرحًبا‪ ،‬مجهول"‪ .‬وعند استدعاء الدالة مع تمرير قيمة "أحمد" للمعامل‪،‬‬
‫تقوم الدالة بطباعة "مرحًبا‪ ،‬أحمد"‪.‬‬
‫بالطبع! يمكنك بناء دوال للعمليات الحسابية في ‪ .Python‬هنا بعض األمثلة‪:‬‬

‫بنل دوال للقيام بالعمليات الحسابية الرئيسية‪ :‬الجمع‪ ،‬الطرح‪ ،‬الضرب‪ ،‬والقسمة‪ .‬تقوم الدوال بتنفيذ العمليات المحددة‬
‫وإرجاع النتائج‪.‬‬

‫**مثال ‪ :1‬جمع اثنين من األعداد‪**:‬‬

‫‪def add_numbers(a, b):‬‬


‫‪return a + b‬‬

‫)‪result = add_numbers(5, 3‬‬


‫‪print(result) # Output: 8‬‬

‫**مثال ‪ :2‬طرح اثنين من األعداد‪**:‬‬

‫‪def subtract_numbers(a, b):‬‬


‫‪return a - b‬‬

‫)‪result = subtract_numbers(10, 4‬‬


‫‪print(result) # Output: 6‬‬

‫**مثال ‪ :3‬ضرب اثنين من األعداد‪**:‬‬

‫‪def multiply_numbers(a, b):‬‬


‫‪return a * b‬‬

‫)‪result = multiply_numbers(7, 2‬‬


‫‪print(result) # Output: 14‬‬

‫**مثال ‪ :4‬قسمة اثنين من األعداد‪**:‬‬

‫‪def divide_numbers(a, b):‬‬


‫‪if b != 0:‬‬
‫‪return a / b‬‬
‫‪else:‬‬
‫"ال يمكن قسمة على الصفر" ‪return‬‬

‫)‪result = divide_numbers(10, 2‬‬


‫‪print(result) # Output: 5.0‬‬

‫)‪result = divide_numbers(8, 0‬‬


‫"ال يمكن قسمة على الصفر" ‪print(result) # Output:‬‬

‫في المثال الرابع‪ ،‬تمت معالجة حالة القسمة على الصفر باستخدام جملة شرطية‪ .‬إذا كان المقسوم عليه (المقام) يساوي‬
‫الصفر‪ ،‬فإن الدالة تعيد رسالة توضح أن القسمة غير ممكنة على الصفر‪.‬‬

‫تذكر أنه يمكنك توسيع هذه األمثلة لتضمن المزيد من العمليات الحسابية أو التحسيبية حسب احتياجاتك‪.‬‬
‫طرق ارسال القيم الى الدوال وارجاعها‬

‫يمكنك إرسال القيم إلى الدوال واسترجاعها باستخدام المعامالت والتعليمات المناسبة في ‪ .Python‬هناك عدة طرق‬
‫إلرسال القيم إلى الدوال واسترجاعها‪ ،‬بما في ذلك‪:‬‬

‫‪ .1‬المعامالت الواجب تمريرها (‪ :)Positional Arguments‬يمكنك تمرير القيم إلى الدوال بالترتيب الصحيح وفًقا‬
‫للمعامالت المحددة في تعريف الدالة‪.‬‬

‫‪def greet(name, age):‬‬


‫)‪", name‬مرحًبا"(‪print‬‬
‫)"سنة" ‪", age,‬عمرك"(‪print‬‬

‫)أحمد"‪greet("25 ,‬‬
‫‪Output:‬‬

‫مرحًبا أحمد‬
‫عمرك ‪ 25‬سنة‬

‫‪ .2‬المعامالت االسمية (‪ :)Keyword Arguments‬يمكنك تمرير القيم إلى الدوال باستخدام اسم المعامل مع القيمة‬
‫المرتبطة به‪.‬‬

‫‪def greet(name, age):‬‬


‫)‪", name‬مرحًبا"(‪print‬‬
‫)"سنة" ‪", age,‬عمرك"(‪print‬‬

‫)"أميرة"=‪greet(age=30, name‬‬
‫‪output:‬‬

‫مرحًبا أميرة‬
‫عمرك ‪ 30‬سنة‬

‫‪ .3‬المعامالت االفتراضية (‪ :)Default Arguments‬يمكنك تعيين قيم افتراضية للمعامالت في تعريف الدالة‪ ،‬وبالتالي‬
‫يصبح تمرير القيم اختيارًيا‪.‬‬

‫‪def greet(name, age=18):‬‬


‫)‪", name‬مرحًبا"(‪print‬‬
‫)"سنة" ‪", age,‬عمرك"(‪print‬‬

‫)"فاطمة"(‪greet‬‬
‫‪Output:‬‬

‫مرحًبا فاطمة‬
‫عمرك ‪ 18‬سنة‬

‫‪ .4‬القيم الُمرَج عة (‪ :)Return Values‬يمكن للدوال إرجاع قيم بواسطة التعليمة "‪ ،"return‬ويمكنك تخزين هذه القيم في‬
‫متغيرات واستخدامها في جزء آخر من البرنامج‪.‬‬

‫‪def add_numbers(a, b):‬‬


‫‪return a + b‬‬

‫)‪result = add_numbers(3, 4‬‬


‫)‪print(result‬‬ ‫‪# Output: 7‬‬

‫في هذا المثال‪ ،‬تم إرجاع قيمة جمع األعداد ‪ 3‬و ‪ 4‬من الدالة `‪ .`)(add_numbers‬تم تخزين هذه القيمة في المتغير `‬
‫‪ ،`result‬والذي يمكن استخدامه في أجزاء أخرى من البرنامج‪.‬‬

‫التمارين المنزلية‪:‬‬

‫تمرين ‪ :1‬حساب متوسط األعداد‬

‫اكتب دالة تأخذ قائمًة من األعداد كمدخل وتحسب المتوسط الحسابي لتلك األعداد‪ .‬قم بإرجاع المتوسط كنتيجة للدالة‪.‬‬

‫تمرين ‪ :2‬عدد الكلمات في جملة‬

‫اكتب دالة تأخذ جملًة كمدخل وتحسب عدد الكلمات في تلك الجملة‪ .‬يمكنك افتراض أن الكلمات مفصولة بمسافات فقط‪ .‬قم‬
‫بإرجاع عدد الكلمات كنتيجة للدالة‪.‬‬

‫تمرين ‪ :3‬العثور على العنصر األكبر‬

‫اكتب دالة تأخذ قائمًة من األعداد كمدخل وتعثر على العنصر األكبر في تلك القائمة‪ .‬قم بإرجاع العنصر األكبر كنتيجة‬
‫للدالة‪.‬‬

‫تمرين ‪ :4‬تحويل درجة مئوية إلى فهرنهايت‬

‫اكتب دالة تأخذ قيمة درجة حرارة بالمئوية كمدخل وتقوم بتحويلها إلى درجة حرارة بالفهرنهايت‪ .‬يتم استخدام الصيغة‬
‫التالية للتحويل‪ `F = (C * 9/5) + 32` :‬حيث ‪ F‬هي درجة الحرارة بالفهرنهايت و ‪ C‬هي درجة الحرارة بالمئوية‪ .‬قم‬
‫بإرجاع درجة الحرارة بالفهرنهايت كنتيجة للدالة‪.‬‬

‫تمرين ‪ :5‬العثور على العناصر المكررة‬

‫اكتب دالة تأخذ قائمًة من العناصر كمدخل وتعثر على العناصر المكررة في تلك القائمة‪ .‬قم بإرجاع قائمة جديدة تحتوي‬
‫على العناصر المكررة فقط‪.‬‬

‫تمرين ‪ :6‬حساب القوة‬

‫اكتب دالة تأخذ رقًم ا كمدخل وتحسب قيمة الرقم المرفوع إلى قوة محددة (على سبيل المثال‪ ،‬رفع العدد إلى األس ‪ .)2‬قم‬
‫بإرجاع النتيجة كنتيجة للدالة‪.‬‬

‫تمرين ‪ :7‬تحويل الساعات والدقائق إلى ثواني‬

‫اكتب دالة تأخذ قيمتين للساعات والدقائق كمدخل وتحسب إجمالي الثواني المقابل لتلك الساعات والدقائق‪ .‬قم بإرجاع العدد‬
‫الكلي للثواني كنتيجة للدالة‪.‬‬

‫يمكن للطالب ممارسة هذه الدوال واختبارها عندون أن أعطيك حلواًل صحيحة‪ .‬يمكنك أن تشجع الطالب على تجربة‬
‫حلولهم الخاصة ومناقشة النتائج واألخطاء المحتملة معهم‪.‬‬

You might also like