Ưu đãi trong tuần: Nhập mã UD50 giảm 50k cho đơn từ 300k!
Trang chủ
Menu

Python 3: Deep Dive (Part 1 - Functional)

Python 3: Khám Phá Chuyên Sâu (Phần 1 - Lập Trình Hàm)

Python 3: Khám Phá Chuyên Sâu (Phần 1 - Lập Trình Hàm)

Biến, Hàm và Lập Trình Hàm, Closures, Decorators, Modules và Packages

4.8
(13,177 đánh giá)
70,499 học viên
Giảng viên
Dr. Fred Baptiste
Phụ đề Việt chất lượng cao Phụ đề tiếng Anh Bán chạy Đánh giá cao
79.000đ 349.000đ -77%
✓ Xem giỏ hàng và thanh toán
Bao gồm phụ đề tiếng Việt, tiếng Anh
46.0 giờ video
161 bài giảng
Truy cập vĩnh viễn
Học trên mọi thiết bị
Cập nhật: 07/06/2026

Bạn sẽ học được gì

Tìm hiểu sâu về biến, bộ nhớ, namespaces và phạm vi
Khám phá chuyên sâu về quản lý bộ nhớ và tối ưu hóa trong Python
Hiểu sâu và sử dụng nâng cao các kiểu dữ liệu số trong Python (Boolean, Số Nguyên, Số Thực, Số Thập Phân, Phân Số, Số Phức)
Biểu thức và toán tử Boolean nâng cao
Sử dụng nâng cao các đối tượng có thể gọi (callables) bao gồm hàm, lambda và closures
Kỹ thuật lập trình hàm như map, reduce, filter và partials
Tạo decorators nâng cao, bao gồm decorators có tham số, class decorators và decorator classes
Ứng dụng decorators nâng cao như ghi nhớ (memoization) và hàm chung đơn phân phối (single dispatch generic functions)
Sử dụng và hiểu hệ thống Module và Package phức tạp của Python
Python chuẩn và các phương pháp hay nhất
Hiểu thời gian biên dịch và thời gian chạy của Python và cách chúng ảnh hưởng đến mã của bạn
Tránh các lỗi thường gặp

Yêu cầu

Kiến thức cơ bản ban đầu về lập trình Python (biến, câu lệnh điều kiện, vòng lặp, hàm, danh sách, tuple, từ điển, lớp).
Bạn cần Python 3.6 trở lên và một môi trường phát triển tùy chọn (dòng lệnh, PyCharm, Jupyter, v.v.)

Đối tượng phù hợp

Dành cho bất kỳ ai đã hiểu cơ bản về Python và muốn nâng lên cấp độ tiếp theo, hiểu sâu về ngôn ngữ Python và cấu trúc dữ liệu của nó.
Dành cho bất kỳ ai đang chuẩn bị cho một buổi phỏng vấn kỹ thuật Python chuyên sâu.

Nội dung khóa học

11 phần • 161 bài giảng
1 Tổng quan khóa học
2 Điều kiện tiên quyết
3 Dự án mã và Notebooks
4 Slide khóa học
1 Giới thiệu
2 Hệ thống phân cấp kiểu trong Python
3 Câu lệnh nhiều dòng và chuỗi
4 Tên biến
5 Câu lệnh điều kiện
6 Hàm
7 Vòng lặp While
8 Break, Continue và Câu lệnh Try
9 Vòng lặp For
10 Lớp (Classes)
1 Giới thiệu
2 Biến là tham chiếu bộ nhớ
3 Đếm tham chiếu (Reference Counting)
4 Thu gom rác (Garbage Collection)
5 Kiểu động so với kiểu tĩnh
6 Gán lại biến
7 Tính có thể thay đổi của đối tượng (Object Mutability)
8 Đối số hàm và tính có thể thay đổi
9 Tham chiếu chung và tính có thể thay đổi
10 So sánh bằng giữa các biến
11 Mọi thứ đều là đối tượng
12 Tối ưu hóa Python: Interning
13 Tối ưu hóa Python: String Interning
14 Tối ưu hóa Python: Peephole
1 Giới thiệu
2 Số nguyên: Kiểu dữ liệu
3 Số nguyên: Các phép toán
4 Số nguyên: Hàm tạo và Hệ cơ số - Lý thuyết
5 Số nguyên: Hàm tạo và Hệ cơ số - Thực hành
6 Số hữu tỉ - Lý thuyết
7 Số hữu tỉ - Thực hành
8 Số thực: Biểu diễn nội bộ - Lý thuyết
9 Số thực: Biểu diễn nội bộ - Thực hành
10 Số thực: Kiểm tra bằng nhau - Lý thuyết
11 Số thực: Kiểm tra bằng nhau - Thực hành
12 Số thực: Ép kiểu thành số nguyên - Lý thuyết
13 Số thực: Ép kiểu thành số nguyên - Thực hành
14 Số thực: Làm tròn - Lý thuyết
15 Số thực: Làm tròn - Thực hành
16 Số thập phân - Lý thuyết
17 Số thập phân - Thực hành
18 Số thập phân: Hàm tạo và Ngữ cảnh - Lý thuyết
19 Số thập phân: Hàm tạo và Ngữ cảnh - Thực hành
20 Số thập phân: Các phép toán - Lý thuyết
21 Số thập phân: Các phép toán - Thực hành
22 Số thập phân: Cân nhắc về hiệu suất
23 Số phức - Lý thuyết
24 Số phức - Thực hành
25 Boolean
26 Boolean: Giá trị chân lý - Lý thuyết
27 Boolean: Giá trị chân lý - Thực hành
28 Boolean: Thứ tự ưu tiên và Đánh giá ngắn mạch - Lý thuyết
29 Boolean: Thứ tự ưu tiên và Đánh giá ngắn mạch - Thực hành
30 Boolean: Toán tử Boolean - Lý thuyết
31 Boolean: Toán tử Boolean - Thực hành
32 Toán tử so sánh
1 Giới thiệu
2 Đối số so với Tham số
3 Đối số vị trí và từ khóa - Lý thuyết
4 Đối số vị trí và từ khóa - Thực hành
5 Giải nén các đối tượng có thể lặp - Lý thuyết
6 Giải nén các đối tượng có thể lặp - Thực hành
7 Giải nén mở rộng - Lý thuyết
8 Giải nén mở rộng - Thực hành
9 *args - Lý thuyết
10 *args - Thực hành
11 Đối số từ khóa - Lý thuyết
12 Đối số từ khóa - Thực hành
13 **kwargs
14 Tổng hợp tất cả - Lý thuyết
15 Tổng hợp tất cả - Thực hành
16 Ứng dụng: Một bộ đếm thời gian hàm đơn giản
17 Giá trị mặc định tham số - Cẩn thận!!
18 Giá trị mặc định tham số - Cẩn thận lần nữa!!
1 Giới thiệu
2 Docstrings và Chú thích - Lý thuyết
3 Docstrings và Chú thích - Thực hành
4 Biểu thức Lambda - Lý thuyết
5 Biểu thức Lambda - Thực hành
6 Lambda và Sắp xếp
7 Thử thách - Xáo trộn một đối tượng có thể lặp bằng Sorted!!
8 Tự kiểm tra hàm - Lý thuyết
9 Tự kiểm tra hàm - Thực hành
10 Các đối tượng có thể gọi (Callables)
11 Map, Filter, Zip và List Comprehensions - Lý thuyết
12 Map, Filter, Zip và List Comprehensions - Thực hành
13 Hàm rút gọn (Reducing Functions) - Lý thuyết
14 Hàm rút gọn (Reducing Functions) - Thực hành
15 Hàm từng phần (Partial Functions) - Lý thuyết
16 Hàm từng phần (Partial Functions) - Thực hành
17 Module operator - Lý thuyết
18 Module operator - Thực hành
1 Giới thiệu
2 Phạm vi toàn cục và cục bộ - Lý thuyết
3 Phạm vi toàn cục và cục bộ - Thực hành
4 Phạm vi nonlocal - Lý thuyết
5 Phạm vi nonlocal - Thực hành
6 Closures - Lý thuyết
7 Closures - Thực hành
8 Ứng dụng Closures - Phần 1
9 Ứng dụng Closures - Phần 2
10 Decorators (Phần 1) - Lý thuyết
11 Decorators (Phần 1) - Thực hành
12 Ứng dụng Decorator (Bộ đếm thời gian)
13 Ứng dụng Decorator (Logger, Decorators xếp chồng)
14 Ứng dụng Decorator (Ghi nhớ - Memoization)
15 Nhà máy Decorator (Decorator Factories) - Lý thuyết
16 Nhà máy Decorator (Decorator Factories) - Thực hành
17 Ứng dụng Decorator (Lớp Decorator)
18 Ứng dụng Decorator (Trang trí Lớp)
19 Ứng dụng Decorator (Phân phối - Dispatching) - Phần 1
20 Ứng dụng Decorator (Phân phối - Dispatching) - Phần 2
21 Ứng dụng Decorator (Phân phối - Dispatching) - Phần 3
1 Giới thiệu
2 Tuple như Cấu trúc Dữ liệu - Lý thuyết
3 Tuple như Cấu trúc Dữ liệu - Thực hành
4 Named Tuples - Lý thuyết
5 Named Tuples - Thực hành
6 Named Tuples - Sửa đổi và Mở rộng - Lý thuyết
7 Named Tuples - Sửa đổi và Mở rộng - Thực hành
8 Named Tuples - DocStrings và Giá trị Mặc định - Lý thuyết
9 Named Tuples - DocStrings và Giá trị Mặc định - Thực hành
10 Named Tuples - Ứng dụng - Trả về Nhiều Giá trị
11 Named Tuples - Ứng dụng - Thay thế cho Từ điển
1 Giới thiệu
2 Module là gì?
3 Python nhập Module như thế nào?
4 Câu lệnh nhập và importlib
5 Các biến thể nhập và quan niệm sai lầm - Lý thuyết
6 Các biến thể nhập và quan niệm sai lầm - Thực hành
7 Tải lại Module
8 Sử dụng __main__
9 Tổng kết về Modules
10 Packages là gì? - Lý thuyết
11 Packages là gì? - Thực hành
12 Tại sao cần Packages?
13 Cấu trúc Packages - Phần 1
14 Cấu trúc Packages - Phần 2
15 Namespace Packages
16 Nhập từ tệp Zip
1 Python 3.10
2 Python 3.9
3 Python 3.8 / 3.7
4 Điểm nổi bật Python 3.6
5 Python 3.6 - Thứ tự Từ điển
6 Python 3.6 - Dấu gạch dưới trong số
7 Python 3.6 - Thứ tự được giữ của kwargs và Ứng dụng Named Tuple
8 Python 3.6 - f-Strings
1 Giới thiệu
2 Tài nguyên bổ sung
3 Ngẫu nhiên: Hạt giống (Seeds)
4 Lựa chọn ngẫu nhiên
5 Mẫu ngẫu nhiên
6 Đo thời gian mã bằng *timeit*
7 Đừng sử dụng tên *args và **kwargs một cách mù quáng
8 Đối số dòng lệnh
9 Giá trị Sentinel cho tham số mặc định

Giới thiệu khóa học

Hello!

This is Part 1 of a series of courses intended to dive into the inner mechanics and more complicated aspects of Python 3.

This is not a beginner course!

If you've been coding Python for a week or a couple of months, you probably should keep writing Python for a bit longer before tackling this series.

On the other hand, if you've been studying or programming in Python for a while, and are now starting to ask yourself questions such as:

  • I wonder how this works?

  • is there another, more pythonic, way, of doing this?

  • what's a closure? is that the same as a lambda?

  • I know how to use a decorator someone else wrote, but how does it work? How do I write my own?

  • why do some boolean expressions not return a boolean value? How can I use that to my advantage?

  • how does the import mechanism in Python work, and why am I getting side effects?

  • and similar types of question...

then this course is for you.


To get the most out of this course, you should be prepared to pause the coding videos, and attempt to write code before I do! Sit back during the concept/theory videos, but lean in for the code videos!


Please make sure you review the pre-requisites for this course (below)  - although I give a brief refresh of basic concepts at the beginning of the course, those are concepts you should already be very comfortable with as you being this course.

In this course series, I will give you a much more fundamental and deeper understanding of the Python language and the standard library.

Python is called a "batteries-included" language for good reason - there is a ton of functionality in base Python that remains to be explored and studied.

So this course is not about explaining my favorite 3rd party libraries - it's about Python, as a language, and the standard library.

In particular this course is based on the canonical CPython. You will also need Jupyter Notebooks to view the downloadable fully-annotated Python notebooks.

It's about helping you explore Python and answer questions you are asking yourself as you develop more and more with the language.


In Python 3: Deep Dive (Part 1) we will take a much closer look at:

  • Variables - in particular that they are just symbols pointing to objects in memory (references)

  • Namespaces and scopes

  • Python's numeric types

  • Python boolean type - there's more to a simple or statement than you might think!

  • Run-time vs compile-time and how that affects function defaults, decorators, importing modules, etc

  • Functions in general (including lambdas)

  • Functional programming techniques (such as map, reduce, filter, zip, etc)

  • Closures

  • Decorators

  • Imports, modules and packages

  • Tuples as data structures

  • Named tuples



Course Prerequisites

This is an intermediate to advanced Python course.

To have the full benefit of this course you should be comfortable with the basic Python language including:

  • variables and simple types such as str , bool , int  and float  types

  • for  and while  loops

  • if...else...  statements

  • using simple lists , tuples , dictionaries  and sets

  • defining functions (using the def  statement)

  • writing simple classes using the class  keyword and the __init__  method, writing instance methods, creating basic properties using @property decorators

  • importing modules from the standard library (e.g. import math)


You should also:

  • have Python 3.6 (or higher) installed on your system

  • be able to write and run Python programs using either:

    • the command line, or

    • a favorite IDE (such as PyCharm),

  • have Jupyter Notebooks installed (which I use throughout this course so as to provide you fully annotated Python code samples)

Khóa học liên quan

Khám phá thêm các khoá học cùng chủ đề

Hiển thị tất cả khoá học Functional Programming
Hiển thị tất cả khoá học Python
Hiển thị tất cả khoá học Python Programming
Hiển thị tất cả khoá học Software Development
Zalo
Tôi có thể tư vấn khoá học cho bạn 😊