Nếu một hàm tự gọi chính nó, đó là hàm đệ quy. Để tránh vòng lặp vô tận, lời gọi đệ quy phải đặt trong câu lệnh điều kiện.
Chương trình sau nhận một số từ người dùng và truyền nó làm đối số cho hàm rsum(). Hàm này tự gọi lại bằng cách giảm đối số mỗi lần cho đến khi đạt đến 1.
def rsum(n):
if n <= 1:
return n
else:
return n + rsum(n-1)
num = int(input("Nhập một số: "))
ttl = rsum(num)
print("Tổng là", ttl)
Chạy thử chương trình với đầu vào 10:
Nhập một số: 10 Tổng là 55
Giải thích: Hàm rsum(10) sẽ tính 10 + 9 + 8 + ... + 1 = 55. Đây là ví dụ kinh điển của đệ quy, tuy nhiên với số lớn có thể gây tràn stack – lúc đó nên dùng công thức n*(n+1)/2 hoặc vòng lặp.