Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

الدوال العودية الجزء الثاني

جزء من قسم المنطق وتدفق التنفيذ في رحلة Python على Coddy. الدرس 61 من 78.

تتكوّن الدوال التكرارية عادةً من جزأين:

  1. الحالة الأساسية: تحدد متى يجب أن يتوقف الاستدعاء التكراري.
  2. الخطوة التكرارية: تستدعي الدالة نفسها بمدخل أصغر.

مثال: حساب المضروب باستخدام الاستدعاء الذاتي:

def factorial(n):
    if n == 1:  # الحالة الأساسية
        return 1
    return n * factorial(n - 1)  # الاستدعاء التكراري

print(factorial(5))  # المخرجات: 120

هنا، تواصل الدالة استدعاء نفسها باستخدام n - 1 حتى تصل إلى 1، حيث يتوقف الاستدعاء التكراري.

مثال: عكس سلسلة نصية:

def recursive_reverse(s):
	if len(s) <= 1:  # الحالة الأساسية: سلسلة فارغة أو ذات حرف واحد
		return s
	else:
		return recursive_reverse(s[1:]) + s[0]  # الخطوة العودية

text = "hello"
result = recursive_reverse(text)
print(result)
# المخرجات: olleh

في هذا المثال، تستدعي الدالة recursive_reverse نفسها مع بقية السلسلة النصية (s[1:]) حتى تصبح السلسلة النصية فارغة أو تحتوي على حرف واحد فقط. يضيف كل استدعاء الحرف الأول إلى نتيجة الاستدعاء التكراري، مما يؤدي فعليًا إلى عكس السلسلة النصية.

challenge icon

التحدي

سهل

اكتب دالة تكرارية باسم fibonacci تأخذ عددًا صحيحًا موجبًا n كمعامل وتعيد رقم فيبوناتشي النوني. تُعرَّف متتالية فيبوناتشي كما يلي:

  • fibonacci(1) = 0
  • fibonacci(2) = 1
  • fibonacci(n) = fibonacci(n-1) + fibonacci(n-2) لـ n > 2.

مثال الإدخال:

n = 6

مثال الإخراج:

5

جرّب بنفسك

def fibonacci(n):
    # اكتب الكود هنا
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس المنطق وتدفق التنفيذ

تدرّب بنفسك: مترجم Python عبر الإنترنت