Rekursiya — funksiya o'zini o'zi chaqirishi. Oddiy qilib aytganda: masalani kichikroq qismga bo'lib, xuddi shu usul bilan yechish.
Matryoshka qo'g'irchoqni tasavvur qiling — katta qo'g'irchoqni ochsangiz, ichida kichikroq bor. Uni ochsangiz — yana kichikroq. Eng kichigiga yetganda to'xtaysiz. Rekursiya ham xuddi shunday — har qadam kichikroq, eng kichigida to'xtaydi.
Oddiy misol — orqaga sanash:
def sana(n):
if n == 0: # bazaviy holat — to'xtash nuqtasi
return
print(n)
sana(n - 1) # o'zini o'zi chaqiradi, kichikroq n bilan
sana(3)
# 3
# 2
# 1sana(3) → sana(2) → sana(1) → sana(0) to'xtaydi.
Bazaviy holat — rekursiyani to'xtatuvchi shart. Bazaviy holat bo'lmasa, funksiya cheksiz chaqiriladi va xato beradi:
# XATO — bazaviy holat yo'q!
def cheksiz(n):
print(n)
cheksiz(n - 1) # hech qachon to'xtamaydi → RecursionErrorMuhim qoidalar:
n == 0)Rekursiv orqaga sanash
sana(n) funksiyasini yozing — n dan 1 gacha sonlarni chiqarsin.