Đệ quy Python

Một chức năng trongPythoncó thể gọi chính nó. Đệ quy là như vậy. Và nó có thể khá hữu ích trong nhiều trường hợp.

Cách phổ biến để giải thích đệ quy là sử dụng phép tính giai thừa.

Giai thừa của một số là sốnmutiplied bởin-1, nhân vớin-2… Và cứ tiếp tục như vậy cho đến khi đạt đến con số1:

3! = 3 * 2 * 1 = 6
4! = 4 * 3 * 2 * 1 = 24
5! = 5 * 4 * 3 * 2 * 1 = 120

Using recursion we can write a function that calculates the factorial of any number:

def factorial(n):
    if n == 1: return 1
    return n * factorial(n-1)

print(factorial(3)) # 6 print(factorial(4)) # 24 print(factorial(5)) # 120

If inside the factorial() function you call factorial(n) instead of factorial(n-1), you are going to cause an infinite recursion. Python by default will halt recursions at 1000 calls, and when this limit is reached, you will get a RecursionError error.

Recursion is helpful in many places, and it helps us simplify our code when there’s no other optimal way to do it, so it’s good to know this technique.


More python tutorials: