Bỏ qua để đến nội dung
Bumbii Academy
Lập trình
Scratch
Python
C++
Java
Swift
Kotlin
CTDL & Giải thuật
Đề thi
Tin học trẻ
Học sinh giỏi
Bài tập lập trình
Tin tức
Tìm kiếm
Ctrl
K
Hủy
Python
👋 Giới thiệu
Python là gì?
Python làm được gì?
⚙️ Cài đặt & Công cụ
Cài đặt Python & PyCharm
Tạo dự án (project) trong PyCharm
📚 Ngôn ngữ Python
Các toán tử số học (Arithmetic Operators)
Biểu thức số học (Arithmetic expression)
Các hàm số học trong Python (Arithmetic functions)
Giá trị (Values) và Kiểu dữ liệu (Data Types)
Nhập dữ liệu từ Bàn phím (Keyboard Input)
In kết quả/thông tin với hàm print()
Biến (Variable)
Ghi chú / Chú thích (Comment)
Kiểu dữ liệu Số (number)
Boolean và Kiểu dữ liệu Boolean
Chuyển đổi kiểu dữ liệu (Type Conversion)
None Type
Chuỗi ký tự (String)
Các phương thức của String
Định dạng chuỗi (String Formatting)
Toán tử quan hệ/so sánh
Toán tử logic (Logical Operators)
Cấu trúc rẽ nhánh (If-Elif-Else)
Match-Case Statement (Pattern Matching)
Từ khoá (keyword)
Hàm (Function)
Giới thiệu về Hàm
Dành cho bạn nào đã học Scratch
Định nghĩa / Tạo một hàm
Quy tắc đặt tên hàm
Tham số (Parameter) và Đối số (Argument)
Các cách truyền đối số vào hàm
Giá trị trả về (return)
Lambda Function
Vòng lặp for với hàm range()
Vòng lặp while
Vòng lặp lồng nhau (Nested Loops)
Break, Continue và Pass
Enumerate và Zip
Danh sách (List)
Tuple
Từ điển (Dictionary)
Tập hợp (Set)
So sánh List, Tuple, Dictionary, Set
List Comprehension
Dictionary & Set Comprehension
Exception Handling (Try/Except)
Đọc và Ghi File
Làm việc với CSV
Làm việc với JSON
Modules
*args và **kwargs
Đệ quy (Recursion)
Scope và Namespace
Quản lý bộ nhớ (Memory Management)
Decorators (Hàm trang trí)
Generators và Iterators
Context Managers (with statement)
Regular Expressions
Walrus Operator (:=)
Date and Time (datetime module)
Math và Random modules
🎯 Python OOP
Classes và Objects
Constructor và Methods
Kế thừa (Inheritance)
Đóng gói (Encapsulation)
Đa hình (Polymorphism)
Special Methods (Magic Methods)
🚀 Python Nâng Cao
Bên trong một object Python: PyObject, kích thước và bố cục bộ nhớ
List và Tuple trong bộ nhớ: mảng động, over-allocation và deque
Dict và Set: bảng băm bên trong CPython
Bộ cấp phát bộ nhớ, Garbage Collector và truy tìm memory leak
__slots__ và weakref: tiết kiệm bộ nhớ và tránh giữ object quá lâu
Buffer protocol, memoryview, array, struct và mmap: làm việc với byte không cần copy
Bytecode và cách CPython thực thi code: dis, code object, specializing interpreter
GIL và Threading trong Python: hiểu đúng để dùng đúng
Multiprocessing trong Python: dùng hết mọi lõi CPU
asyncio chuyên sâu: event loop, Task, TaskGroup, huỷ và timeout
Threading, Multiprocessing hay asyncio? Cách chọn mô hình đồng thời
Context manager nâng cao: bên trong câu lệnh with, ExitStack và các mẫu thiết kế
Descriptor: cơ chế đứng sau property, method, classmethod và __slots__
Metaclass, __init_subclass__ và quá trình tạo class trong Python
Hệ thống import của Python: sys.modules, sys.path, package và circular import
Type hints nâng cao: Generic, Protocol, TypedDict, ParamSpec và variance
functools, itertools, operator, heapq và bisect: những viên ngọc trong thư viện chuẩn
Đo và tối ưu hiệu năng Python: timeit, cProfile, py-spy và quy trình tối ưu
🐢 Python Turtle
Giới thiệu Python Turtle
Các lệnh cơ bản
Vẽ các hình cơ bản
Màu sắc và tô màu
Vẽ hoa văn và mẫu
Dự án nâng cao
🤔 What the Python! Lạ thế nhỉ?
(5) là int, nhưng (5,) là tuple?!
Trailing comma tạo tuple
List nhân với số - [[]] * 3 có gì lạ?
{} là dict, không phải set!
set.discard() vs set.remove() - Tại sao cần 2 hàm?
String interning - 'a' is 'a' nhưng...
Integer caching - 256 is 256 nhưng 257 is not 257?
True + True = 2 - Boolean là int?!
0.1 + 0.2 không bằng 0.3
Phép chia / vs //
Mutable default arguments - Cái bẫy nguy hiểm!
Late binding closures trong vòng lặp
UnboundLocalError - Biến toàn cục bỗng không tồn tại?
Chained comparisons - 1 < 2 < 3
is vs == - Khi nào dùng cái nào?
Operator precedence - not True == False
Class variables vs Instance variables
Name mangling với __private
Generator exhaustion - Dùng 1 lần rồi... hết!
for-else và while-else - else khi nào chạy?
Assignment tạo reference, không phải copy
Shallow copy vs Deep copy
Chained assignment - a = b = []
Ellipsis ... - Không chỉ để slicing
Underscore _ - Nhiều ý nghĩa khác nhau
Extended unpacking - a, *b, c = [1,2,3,4,5]
Sửa list trong khi đang iterate
all([]) = True và any([]) = False
Tạo dự án (project) trong PyCharm
▶ Xem trên YouTube
Th.S Trần Huy Phúc
Kỹ sư phần mềm @Adnovum & Bumbii Academy
phuc@bumbii.tech
WhatsApp: +84 972465159
Zalo: 0972465159