Hướng dẫn de quy trong python
Show Đã đăng vào thg 4 12, 2021 7:11 SA 3 phút đọc Chào các bạn Trong bài này, mình sẽ giới thiệu có các bạn về khái niệm Đề Quy trong Python. Các bạn cùng tìm hiểu trong bài viết của mình nhé! Đệ quy là gì ?Đệ quy có nghĩa là một hàm tự gọi lại chính nó. Một ví dụ t là đặt hai gương song song đối diện nhau. Bất kỳ đối tượng nào ở giữa chúng sẽ được phản ánh được gọi là đệ quy. Hàm Đệ Quy trong PythonTrong Python, chúng ta biết rằng một hàm có thể gọi các hàm khác. Thậm chí có thể cho hàm tự gọi. Các loại cấu trúc này được gọi là các hàm đệ quy. Hình ảnh sau đây cho thấy hoạt động của một hàm đệ quy được gọi là Sau đây là một ví dụ về một hàm đệ quy để tìm giai thừa của một số nguyên. Giai thừa của một số là tích của tất cả các số nguyên từ 1 đến số đó. Ví dụ: giai thừa của 6 (được ký hiệu là 6!) Là
Ví dụ về một hàm đệ quy
Kết quả sẽ là
Trong ví dụ ở trên, Khi chúng ta gọi hàm này với một số nguyên dương, nó sẽ gọi một cách đệ quy chính nó bằng cách giảm số Mỗi hàm nhân số với giai thừa của số bên dưới nó cho đến khi nó bằng một. Cách gọi hàm đệ quy này có thể được giải thích theo các bước sau.
Dưới đây là một ảnh giải thích cụ thể từng bước cách xử lý hàm đệ quy: Đệ quy của chúng ta kết thúc khi số lượng giảm xuống 1. Đây được gọi là điều kiện bắt buộc nhé. Lưu ý là mọi hàm đệ quy phải có một điều kiện bắt buộc để dừng đệ quy nếu không hàm đó sẽ gọi chính nó vô hạn. Theo mặc định, Dưới đây là ví dụ gây lỗi khi quá giới hạn
Lỗi sẽ hiển thị như sau:
Một số ưu điểm của Đệ Quy
Kết LuậnDưới đây mình đã giới thiệu với các bạn về khái niệm của Đệ Quy trong Python Nếu có bất kì thắc mắc gì hãy để lại comment ở phía dưới nhé. Tham Khảo chi tiết hơnhttps://www.programiz.com/python-programming/object-oriented-programming All rights reserved Dẫn nhậpTrong bài trước, Kteam đã giới thiệu đến bạn KIỂU DỮ LIỆU FUNCTION TRONG PYTHON – FUNCTIONAL TOOLS. Và ở bài này Kteam sẽ lại tìm hiểu với các KIỂU DỮ LIỆU FUNCTION – ĐỆ QUY trong Python. Nội dungĐể đọc hiểu bài này tốt nhất bạn cần:
Bạn và Kteam sẽ cùng tìm hiểu những nội dung sau đây
Giới thiệu về đệ quyĐệ quy là một mảng kiến thức nâng cao, ở Python thì nó không thường xuyên được dùng đến, do cách xử lí của Python có thể sử dụng những cấu trúc vòng lặp đơn giản mà không cần dùng tới đệ quy. Nhưng dù sao thì đây cũng là một kĩ thuật khá hữu dụng mà bạn đọc nên biết. Nó cũng chỉ đơn giản là việc chính nó gọi nó. Lấy một ví dụ cụ thể: Giả sử ta có một list gồm n phần tử, nhiệm vụ của chúng ta là lấy toàn bộ các phần tử của list đó. Để giải bài toán này, ta có thể sử dụng một hàm put: giúp lấy ra một phần tử trong list, đồng thời kiếm tra xem list có rỗng hay không. Nếu list đó vẫn còn phần tử, thì ta lại gọi hàm put thêm một lần nữa (để tiếp tục lấy và kiểm tra). Làm như thế cho đến khi list đó rỗng. Bản thân việc gọi một hàm trong chinh nó được gọi là đệ quy. Trong trường hợp trên, đệ quy là việc khi ta đang chạy hàm put mà lại gọi hàm đó tiếp (trường hợp list có nhiều phần tử). Minh họa đệ quy bằng cách tính tổngTa sẽ tính tổng các phần tử của một list (hoặc một sequence nào đó) bằng cách dùng đệ quy (Ví dụ này chỉ là minh họa, thực tế khi làm bạn nên sử dụng hàm sum)
Ở ví dụ trên, ta liên tục gọi lại hàmcal_sum với argument là phần còn lại của List tính từ index 1. Ở mỗi lần gọi hàm, ta để lại giá trị index 0 ở List để khi trong List không còn phần tử nào ta sẽ trả về số 0 để kết thúc đệ quy. Nếu bạn thấy vẫn còn chưa hiểu rõ thì cũng đừng lo lắng, ai cũng đều cảm thấy khó hiểu và điều này thường xuyên xảy ra với những bạn mới học. Những lúc như thế này, bạn nên để thêm một cái hàm printđể xem cụ thể là chuyện gì xảy ra
Nếu bạn vẫn còn khó hiểu hãy vẽ ra giấy. Đây là cách mà mình đã làm Đệ quy theo phong cách PythonBạn còn nhớ cú pháp if/else trong lambdakhông? Nó còn có tên khác là ternary expression. Bạn có thể áp dụng để sử dụng nó để đệ quy:
Giả sử một list có n phần tử thì với đệ quy như trên cần phải có n + 1 lần return, ta có thể giảm bớt xuống còn n lần return bằng cách:
Hoặc ta có thể sử dụng packing argument:
Đệ quy cũng có thể chuyển hướng. Hãy xem ví dụ sau. Một hàm gọi một hàm khác, sau đó lại gọi lại hàm đã gọi nó.
Đệ quy và vòng lặpỞ những ví dụ trước, nếu phải chọn vòng lặp hay là đệ quy để xử lí thì Kteam khuyên bạn đọc nên chọn vòng lặp. Python chú trọng việc làm đơn giản hóa mọi việc như là vòng lặp vì nó theo một cách bình thường đơn giản. Vòng lặp cũng không yêu cầu bạn phải tạo ra một hàm mới có thể sử dụng được. Và thêm nữa, đệ quy còn thua vòng lặp ở mặt hiệu quả về bộ nhớ và thời gian thực hiện. Kết luậnQua bài viết này, bạn đã biết thêm về đệ quy. Ngoài ra, bạn cũng đã nắm được kha khá các kiến thức cơ bản của Python thông qua khóa LẬP TRÌNH PYTHON CƠ BẢN. Hy vọng khóa học sẽ là nền tảng tốt để bạn có thể tiếp tục tự nghiên cứu hoặc tiến tới các khóa học Python khác. Cảm ơn bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của mình để phát triển bài viết tốt hơn. Đừng quyên “Luyện tập – Thử thách – Không ngại khó”. Thảo luậnNếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng. |