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.