Python Flashcards
(32 cards)
❓ Python là ngôn ngữ kiểu gì về mặt khai báo biến?
💡 Kiểu động – không cần khai báo kiểu trước, kiểu được xác định lúc chạy.
❓ Sự khác nhau giữa list
và tuple
là gì?
💡 list
mutable (có thể thay đổi), tuple
immutable (không thay đổi).
❓ Dữ liệu nào trong Python có thể chứa trùng lặp và thứ tự?
💡 list
và tuple
.
❓ pass
dùng để làm gì?
💡 Là placeholder – dùng khi cần cú pháp hợp lệ nhưng chưa làm gì.
❓ break
và continue
khác nhau thế nào?
💡 break
thoát vòng lặp, continue
bỏ qua lượt lặp hiện tại.
❓ Python chạy chương trình như thế nào?
💡 Phân tích cú pháp → biên dịch bytecode → thông dịch bằng PVM.
❓ self
trong class có nghĩa gì?
💡 Là tham chiếu đến instance hiện tại – dùng để truy cập thuộc tính và method.
❓ \_\_init\_\_
là gì?
💡 Là constructor, chạy khi object được tạo.
❓ Cách giới hạn quyền truy cập thuộc tính trong Python là gì?
💡 Dùng prefix:
-
public
:self.name
-
_protected
:_name
-
\_\_private
:\_\_name
(name mangling)
❓ text[::-1]
trả về gì?
💡 Chuỗi bị đảo ngược.
❓ Lấy phần tử thứ 2 đến 4 của list a
?
💡 a[1:4]
❓ Dạng slicing a[::2]
nghĩa là gì?
💡 Lấy mỗi phần tử cách 2 vị trí (step = 2)
❓ Sự khác nhau giữa module và package?
💡 Module là file .py
, package là thư mục chứa nhiều module và có \_\_init\_\_.py
.
❓ Import hàm add()
từ module math_utils.py
thế nào?
💡 from math_utils import add
❓ Tại sao nên viết unit test?
💡 Đảm bảo code đúng, dễ refactor, phát hiện bug sớm.
❓ pytest
khác gì unittest
?
💡 pytest
ngắn gọn, dễ viết, phổ biến hơn trong dự án thực tế.
❓ Docstring là gì?
💡 Là mô tả hàm/class giúp người dùng hiểu chức năng – truy cập bằng help()
.
❓ Khác biệt giữa list, array, và numpy array là gì?
💡 list
: chứa mọi kiểu, linh hoạt – array.array
: chỉ 1 kiểu, nhanh hơn – numpy.array
: tối ưu tính toán số học lớn.
❓ Python giải phóng bộ nhớ bằng cách nào?
💡 Dùng reference counting và garbage collector – khi không còn biến nào tham chiếu, object được thu hồi.
❓ Làm sao biết có bao nhiêu tham chiếu đến 1 object?
💡 Dùng sys.getrefcount(obj)
❓ Namespace là gì?
💡 Là nơi lưu tên biến → mỗi function/class/module là một namespace riêng.
❓ Python tìm biến theo thứ tự nào?
💡 Theo LEGB: Local → Enclosing → Global → Built-in
❓ Decorator là gì?
💡 Là hàm nhận vào một hàm khác và mở rộng chức năng cho hàm đó mà không làm thay đổi nội dung gốc của hàm. Rất hữu ích trong logging, kiểm tra quyền truy cập, đo thời gian chạy, caching, v.v.
❓ List / Dict / Set comprehension là gì?
💡 Là cú pháp rút gọn giúp tạo list, dict, hoặc set từ iterable một cách ngắn gọn và hiệu quả hơn so với vòng lặp thông thường.
```squares = [x**2 for x in range(10)]
word_lengths = {word: len(word) for word in [‘python’, ‘java’]}
~~~