Lỗi đệ quy trong Python là gì?

Trong hướng dẫn Python này, chúng ta sẽ thảo luận về đệ quy trong python. Ngoài ra, chúng ta sẽ thấy những chủ đề dưới đây là

  • Đệ quy trong python là gì?
  • Hàm đệ quy trong python
  • Ví dụ đệ quy Python
  • Fibonacci đệ quy trong Python
  • Python lấy giá trị hiện tại của giới hạn đệ quy
  • Python thay đổi độ sâu đệ quy tối đa
  • Danh sách đệ quy Python
  • Lỗi đệ quy. vượt quá độ sâu đệ quy tối đa trong python so sánh
  • Ưu điểm đệ quy Python
  • Nhược điểm đệ quy Python

Mục lục

Đệ quy trong python là gì?

Đệ quy trong python là gì? . Đệ quy được sử dụng khi một vấn đề nào đó được xác định theo chính nó. Điều này có những lợi ích mà bạn có thể lặp qua dữ liệu để đạt được kết quả. Ngoài ra, đệ quy có thể dẫn đến một vòng lặp vô hạn, nếu trường hợp cơ sở không được đáp ứng trong các cuộc gọi. Cách tiếp cận đệ quy cung cấp một giải pháp rất ngắn gọn cho một vấn đề phức tạp

Hàm đệ quy trong python

Trong python, như chúng ta biết rằng một hàm có thể gọi các hàm khác. Cũng có thể một chức năng có thể gọi chính nó. Các loại này được gọi là hàm đệ quy

Chúng ta có thể lấy ví dụ về giai thừa của hàm đệ quy để hiểu rõ hơn

Thí dụ

def factorial(number):
    if number == 1:
        return 1
    else:
        return(number * factorial(number - 1))
number = 4
print("Factorial of", number, "is: ", factorial(number))

Sau khi viết đoạn mã trên (hàm đệ quy trong python), 1 bạn sẽ in “số ” thì kết quả xuất ra là “ Giai thừa của 4 là. 24 “. Trong ví dụ này, chúng tôi đang xác định một hàm giai thừa () do người dùng xác định. Hàm này tìm giai thừa của một số bằng cách gọi chính nó nhiều lần cho đến khi đạt đến " 1 " là trường hợp cơ bản

Bạn có thể tham khảo ảnh chụp màn hình bên dưới để biết chức năng đệ quy trong python

Lỗi đệ quy trong Python là gì?
Hàm đệ quy trong python

Ưu điểm đệ quy Python

  1. Lợi ích chính của cách tiếp cận đệ quy trong Python là nó cho phép các lập trình viên tận dụng cấu trúc lặp đi lặp lại trong các bài toán
  2. Đệ quy làm cho chương trình của chúng ta dễ viết hơn
  3. Phân tích trường hợp phức tạp và các vòng lặp lồng nhau có thể tránh được
  4. Đệ quy làm cho mã dễ đọc và hiệu quả hơn

Nhược điểm đệ quy Python

  1. Không phải tất cả các vấn đề có thể được giải quyết bằng cách sử dụng đệ quy
  2. Nó làm chậm thời gian thực hiện và việc gọi hàm đệ quy không hiệu quả về bộ nhớ
  3. Nếu bạn không xác định trường hợp cơ sở thì mã sẽ chạy vô thời hạn
  4. Gỡ lỗi khó khăn trong hàm đệ quy vì hàm tự gọi nó trong một vòng lặp

Ví dụ đệ quy Python

Chúng ta sẽ làm ví dụ về đệ quy trong Python, để tính tổng n số tự nhiên. Bằng cách xác định hàm ” def sum(number) “

Thí dụ

def sum(number):
    if number == 1:
        return 1
    else:
        return(number + sum(number - 1))
number = 6
print("Sum of", number, "is: ", sum(number))

Sau khi viết đoạn mã trên (ví dụ về đệ quy python), 1 bạn sẽ in “số ”, sau đó đầu ra sẽ xuất hiện dưới dạng “ Tổng của 6 là. 21 “. Trong ví dụ này, chúng ta đang định nghĩa hàm sum() do người dùng định nghĩa. Hàm này tìm tổng của một số bằng cách gọi chính nó nhiều lần cho đến khi đạt đến " 1 " là trường hợp cơ bản

Bạn có thể tham khảo ảnh chụp màn hình bên dưới để biết các ví dụ về đệ quy python

Lỗi đệ quy trong Python là gì?
Ví dụ đệ quy Python

Đọc. Python NumPy nối

Fibonacci đệ quy trong Python

Dãy Fibonacci là một dãy các số nguyên trong đó hai số hạng đầu tiên sẽ là 0 và 1 và tất cả các số hạng khác của dãy có được bằng cách cộng hai số hạng trước đó của chúng

Một hàm recursion_fib() được sử dụng để tính n_term của dãy

Thí dụ

def recursion_fib(num):
   if num <= 1:
       return num
   else:
       return(recursion_fib(num-1) + recursion_fib(num-2))
n_term = 5
if n_term <= 0:
   print("Please enter a positive integer")
else:
   print("Fibonacci sequence:")
   for i in range(n_term):
       print(recursion_fib(i))

Sau khi viết đoạn mã trên (fibonacci đệ quy python), Ones bạn sẽ in ra “recursion_fib(i)” sau đó đầu ra sẽ xuất hiện dưới dạng “ 0 1 1 2 3 “. Trong ví dụ này, chúng ta đang gọi hàm một cách đệ quy và vòng lặp được sử dụng để lặp lại và tính toán từng thuật ngữ một cách đệ quy

Bạn có thể tham khảo ảnh chụp màn hình bên dưới để biết đệ quy python

Lỗi đệ quy trong Python là gì?
Fibonacci đệ quy trong Python

Python nhận giá trị hiện tại của giới hạn đệ quy

Để lấy giá trị hiện tại của giới hạn đệ quy trong Python, chúng tôi sẽ nhập mô-đun sys, sau đó chúng tôi sẽ sử dụng “sys. getrecursionlimit()” để lấy giới hạn đệ quy hiện tại

Thí dụ

import sys
print("The current value of the recursion limit:")
print(sys.getrecursionlimit())

Sau khi viết đoạn mã trên (python lấy giá trị hiện tại của giới hạn đệ quy), Ones bạn sẽ in “sys. getrecursionlimit()” thì đầu ra sẽ xuất hiện dưới dạng “1000” là giá trị mặc định. Trong ví dụ này, chúng tôi đang nhận giá trị hiện tại của giới hạn đệ quy bằng cách sử dụng sys. getrecursionlimit()

Bạn có thể tham khảo ảnh chụp màn hình bên dưới để lấy giá trị hiện tại của giới hạn đệ quy

Lỗi đệ quy trong Python là gì?
Python nhận giá trị hiện tại của giới hạn đệ quy

Python thay đổi độ sâu đệ quy tối đa

Để thay đổi độ sâu đệ quy tối đa trong Python, chúng tôi sẽ sử dụng “sys. setrecursionlimit()” sẽ tăng giới hạn đệ quy và chúng ta có thể thực hiện các thao tác liên tiếp theo cách đệ quy

Thí dụ

import sys
sys.setrecursionlimit(1006)
new_limit = sys.getrecursionlimit()
print(new_limit)

Sau khi viết đoạn mã trên (python thay đổi độ sâu đệ quy tối đa), Ones bạn sẽ in “new_limit” sau đó đầu ra sẽ xuất hiện dưới dạng “ 1006 “. Trong ví dụ này, chúng tôi nhận được giá trị đã thay đổi của giới hạn đệ quy bằng cách sử dụng sys. setrecursionlimit(1006)

Bạn có thể tham khảo ảnh chụp màn hình bên dưới python thay đổi độ sâu đệ quy tối đa

Lỗi đệ quy trong Python là gì?
Python thay đổi độ sâu đệ quy tối đa

Danh sách đệ quy Python

Chúng ta sẽ thực hiện tính tổng của một danh sách bằng cách sử dụng đệ quy trong Python, để tính tổng của danh sách đã cho trước tiên hãy xác định hàm ” def sum(list) “. Khi điều kiện cơ sở được đáp ứng, đệ quy sẽ kết thúc và nó sẽ trả về tổng của một danh sách

Thí dụ

def sum(list):
    if len(list)==0:
       return 0
    else:
       return list[0]+sum(list[1:])
list = [1,2,3,4,5]
print(sum(list))

Sau khi viết đoạn mã trên (danh sách đệ quy python), Ones bạn sẽ in “sum(list)” sau đó đầu ra sẽ xuất hiện dưới dạng “ 15 “. Trong ví dụ này, chúng ta lấy tổng của danh sách bằng cách gọi hàm tổng, trong đó hàm cộng tất cả các phần tử theo cách đệ quy cho đến khi đáp ứng điều kiện cơ sở là “0”

Bạn có thể tham khảo danh sách đệ quy python ảnh chụp màn hình bên dưới

Lỗi đệ quy trong Python là gì?
Danh sách đệ quy Python

Lỗi đệ quy. vượt quá độ sâu đệ quy tối đa trong python so sánh

Hàm đệ quy bao gồm các giới hạn để đảm bảo rằng chúng không thực thi vô hạn. Khi được cung cấp một đầu vào lớn, chương trình gặp sự cố và đưa ra lỗi "vượt quá độ sâu đệ quy tối đa". Điều này có nghĩa là chức năng sẽ chạy cho đến khi một điều kiện cụ thể được đáp ứng

Thí dụ

def fact(num):
    if num == 0:
        return 1
    else:
        return num * fact(num-1)
print(fact(2000))

Sau khi viết đoạn mã trên, Sau khi bạn in “(fact(2000))” thì lỗi sẽ xuất hiện dưới dạng “RecursionError. vượt quá độ sâu đệ quy tối đa so với”. Ở đây, lỗi sẽ xảy ra nếu bạn viết một hàm đệ quy thực thi nhiều hơn một số lần lặp cụ thể (thường là 998) thì bạn sẽ gặp lỗi này

Bạn có thể thấy ảnh chụp màn hình bên dưới vượt quá độ sâu đệ quy tối đa khi so sánh với python

Lỗi đệ quy trong Python là gì?
Lỗi đệ quy. vượt quá độ sâu đệ quy tối đa trong python so sánh

Python đã đưa ra một lỗi đệ quy để bảo vệ chống tràn ngăn xếp. Để giải quyết lỗi này, chúng ta có thể tăng giới hạn đệ quy trong chương trình của mình bằng cách sử dụng phương thức “setrecursionlimit(4000)”, và bây giờ chương trình được thực thi mà không có lỗi

Thí dụ

import sys
sys.setrecursionlimit(4000)
def fact(num):
    if num == 0:
        return 1
    else:
        return num * fact(num-1)
print(fact(2000))

Sau khi viết đoạn mã trên, Sau khi bạn sẽ in “(fact(2000))” thì đầu ra sẽ xuất hiện mà không có bất kỳ lỗi nào. Ở đây, lỗi được giải quyết bằng cách sử dụng mô-đun nhập sys và thay đổi giới hạn đệ quy bằng cách sử dụng setrecursionlimit(). Bây giờ chúng ta có thể thấy rằng giới hạn đệ quy được tăng lên

Bạn có thể tham khảo ảnh chụp màn hình bên dưới để biết đầu ra

Lỗi đệ quy trong Python là gì?
vượt quá độ sâu đệ quy tối đa trong python so sánh

Bạn có thể thích hướng dẫn Python sau đây

  • Cách chuyển đổi Chuỗi thành Ngày giờ trong Python
  • Trình tự thoát trong Python
  • Python hiểu danh sách lambda
  • Phân luồng và đa luồng trong Python

Trong hướng dẫn này, chúng ta đã học về đệ quy trong python. Ngoài ra chúng tôi đã đề cập đến các chủ đề này

  • Đệ quy trong python là gì?
  • Hàm đệ quy trong python
  • Ví dụ đệ quy Python
  • Fibonacci đệ quy trong Python
  • Python lấy giá trị hiện tại của giới hạn đệ quy
  • Python thay đổi độ sâu đệ quy tối đa
  • Danh sách đệ quy Python
  • Lỗi đệ quy. vượt quá độ sâu đệ quy tối đa trong python so sánh
  • Ưu điểm đệ quy Python
  • Nhược điểm đệ quy Python

Lỗi đệ quy trong Python là gì?

Bijay Kumar

Python là một trong những ngôn ngữ phổ biến nhất ở Hoa Kỳ. Tôi đã làm việc với Python trong một thời gian dài và tôi có kinh nghiệm làm việc với nhiều thư viện khác nhau trên Tkinter, Pandas, NumPy, Turtle, Django, Matplotlib, Tensorflow, Scipy, Scikit-Learn, v.v… Tôi có kinh nghiệm làm việc với nhiều khách hàng khác nhau . Kiểm tra hồ sơ của tôi

Lỗi đệ quy nghĩa là gì?

Ngoại lệ JavaScript "quá nhiều đệ quy" hoặc "Vượt quá kích thước ngăn xếp lệnh gọi tối đa" xảy ra khi có quá nhiều lệnh gọi hàm hoặc một hàm thiếu trường hợp cơ sở.

đệ quy trong Python với ví dụ là gì?

Thuật ngữ Đệ quy có thể được định nghĩa là quá trình xác định một thứ gì đó theo chính nó . Nói một cách đơn giản, đó là một quá trình trong đó một chức năng gọi chính nó trực tiếp hoặc gián tiếp. Một hàm phức tạp có thể được chia thành các bài toán con nhỏ hơn bằng cách sử dụng đệ quy.

Lỗi đệ quy có phải là lỗi thời gian chạy không?

Lỗi thời gian chạy được tạo ra bởi hệ thống thời gian chạy nếu xảy ra sự cố trong khi chương trình đang chạy. Hầu hết các thông báo lỗi thời gian chạy bao gồm thông tin về nơi xảy ra lỗi và chức năng nào đang được thực thi. Thí dụ. Đệ quy vô hạn cuối cùng gây ra lỗi thời gian chạy vượt quá độ sâu đệ quy tối đa .

Giới hạn đệ quy trong Python là gì?

Giới hạn đệ quy là thường là 1000 .