RecursionError: maximum recursion depth exceeded, bir fonksiyon kendini durmadan çağırdığında oluşur. Python belirli bir derinlikten sonra durur.

Neden olur?

En sık neden: özyinelemeli fonksiyonda taban durumun (base case) eksik veya yanlış olması, böylece fonksiyonun asla durmaması.

Hatalı kod

def say(n):
    print(n)
    return say(n + 1)   # hic durmuyor -> RecursionError

Doğru kod

def say(n):
    if n > 5:          # taban durum: durma kosulu
        return
    print(n)
    say(n + 1)

Kontrol listesi

  • Her özyinelemeli fonksiyonda bir durma koşulu olmalı.
  • Her çağrıda probleme daha yakınlaştığından emin ol (ör. n azalıyor/artıyor).
  • Çok derin döngüler için özyineleme yerine normal döngü düşün.

Python derslerimizle adım adım pratik yapabilirsin.