1. Trong Python, `generators` là gì và chúng khác biệt như thế nào so với list?
A. Generators là một loại list đặc biệt có thể thay đổi kích thước linh hoạt hơn.
B. Generators là hàm tạo ra một chuỗi các giá trị bằng cách `yield` từng giá trị một, thay vì tạo ra toàn bộ list cùng một lúc.
C. Generators là một cách để sắp xếp các phần tử trong list theo thứ tự ngẫu nhiên.
D. Generators là module để tạo ra số ngẫu nhiên trong Python.
2. Module `os` trong Python chủ yếu được sử dụng để làm gì?
A. Thực hiện các phép toán số học phức tạp.
B. Tương tác với hệ điều hành.
C. Xử lý dữ liệu dạng JSON.
D. Tạo giao diện người dùng đồ họa.
3. Trong Python, kiểu dữ liệu nào sau đây là kiểu bất biến (immutable)?
A. list
B. tuple
C. set
D. dictionary
4. Trong Python, comment một dòng code được thực hiện bằng cách sử dụng ký tự nào?
A. `//`
B. `/* ... */`
C. `#`
D. `--`
5. Thư viện Pandas trong Python chủ yếu được sử dụng cho mục đích gì?
A. Xử lý ảnh và video.
B. Phân tích và thao tác dữ liệu dạng bảng (tabular data).
C. Phát triển game.
D. Mô phỏng vật lý.
6. Phương thức `strip()` dùng để làm gì với chuỗi trong Python?
A. Đảo ngược chuỗi.
B. Loại bỏ khoảng trắng ở đầu và cuối chuỗi.
C. Chuyển đổi chuỗi thành chữ hoa.
D. Tìm kiếm một chuỗi con bên trong chuỗi.
7. Đoạn code Python sau sẽ in ra kết quả gì:
`print(3 > 2 and 5 < 10)`
A. True
B. False
C. Error
D. None
8. Hàm nào sau đây được sử dụng để đọc dữ liệu từ file trong Python?
A. `write()`
B. `open()`
C. `read()`
D. `print()`
9. Trong Python, phương thức `__init__` trong một class được gọi khi nào?
A. Khi class được định nghĩa.
B. Khi một instance (đối tượng) của class được tạo ra.
C. Khi một phương thức khác của class được gọi.
D. Khi chương trình Python bắt đầu chạy.
10. Điều gì xảy ra khi bạn cố gắng truy cập một key không tồn tại trong dictionary Python?
A. Trả về giá trị `None`.
B. Trả về giá trị mặc định của key đó.
C. Gây ra lỗi `KeyError`.
D. Tự động thêm key đó vào dictionary với giá trị `None`.
11. Trong Python, vòng lặp `for` thường được sử dụng để:
A. Lặp lại một khối code vô hạn lần.
B. Lặp lại một khối code với số lần biết trước hoặc trên một chuỗi, list, tuple,...
C. Thực hiện một khối code nếu một điều kiện sai.
D. Định nghĩa một hàm.
12. Trong Python, từ khóa `def` được sử dụng để:
A. Khai báo một biến.
B. Định nghĩa một hàm.
C. Bắt đầu một vòng lặp.
D. Xử lý ngoại lệ.
13. Phương thức `append()` được sử dụng để làm gì trong Python?
A. Xóa một phần tử khỏi list.
B. Thêm một phần tử vào cuối list.
C. Sắp xếp các phần tử trong list.
D. Tìm kiếm một phần tử trong list.
14. Trong Python, phương thức `super()` được sử dụng để làm gì trong kế thừa (inheritance)?
A. Để tạo ra một class con mới.
B. Để gọi phương thức của class cha từ bên trong class con.
C. Để kiểm tra xem một đối tượng có phải là instance của một class hay không.
D. Để xóa một class.
15. Phương thức `pop()` hoạt động như thế nào trên list trong Python?
A. Thêm một phần tử vào đầu list.
B. Xóa phần tử cuối cùng của list và trả về nó.
C. Sắp xếp các phần tử trong list theo thứ tự giảm dần.
D. Đảo ngược thứ tự các phần tử trong list.
16. Trong Python, exception handling được thực hiện bằng cấu trúc nào?
A. `if-else`
B. `for-loop`
C. `try-except`
D. `while-loop`
17. Đoạn code Python sau sẽ in ra kết quả gì:
`x = [1, 2, 3]
y = x
y[0] = 10
print(x)`
A. [1, 2, 3]
B. [10, 2, 3]
C. [1, 10, 3]
D. Error
18. Trong Python, toán tử `%` dùng để làm gì?
A. Phép chia lấy phần nguyên.
B. Phép chia lấy phần dư.
C. Phép nhân.
D. Phép lũy thừa.
19. Trong Python, `if __name__ == `__main__`:` thường được sử dụng để làm gì?
A. Định nghĩa class chính của chương trình.
B. Kiểm tra xem module có đang được chạy trực tiếp hay import vào module khác.
C. Khai báo biến toàn cục.
D. Bắt đầu một vòng lặp chính của chương trình.
20. Decorator trong Python được sử dụng để làm gì?
A. Định nghĩa một class mới.
B. Thêm chức năng mới vào một hàm hoặc class hiện có một cách linh hoạt.
C. Tối ưu hóa hiệu suất của code Python.
D. Kiểm tra kiểu dữ liệu của các biến.
21. Trong lập trình hướng đối tượng Python, `self` được sử dụng để:
A. Khai báo một biến cục bộ trong phương thức.
B. Tham chiếu đến instance hiện tại của class.
C. Gọi phương thức của class cha.
D. Định nghĩa một class method.
22. Kiểu dữ liệu nào sau đây không phải là kiểu dữ liệu tích hợp sẵn (built-in) trong Python?
A. int
B. float
C. string
D. array
23. Trong Python, khái niệm `list comprehension` dùng để chỉ điều gì?
A. Một cách để sắp xếp các phần tử trong list.
B. Một cú pháp ngắn gọn để tạo list mới dựa trên list hiện có.
C. Một phương pháp nén dữ liệu list để tiết kiệm bộ nhớ.
D. Một kỹ thuật để gộp nhiều list thành một list duy nhất.
24. Mục đích chính của việc sử dụng virtual environment (môi trường ảo) trong Python là gì?
A. Tăng tốc độ thực thi của code Python.
B. Cách ly các dependencies (thư viện phụ thuộc) của các dự án Python khác nhau.
C. Giảm kích thước file code Python.
D. Tự động phát hiện và sửa lỗi trong code Python.
25. Hàm `range(start, stop, step)` tạo ra dãy số như thế nào?
A. Từ `start` đến `stop` (bao gồm cả `stop`), với bước nhảy `step`.
B. Từ `start` đến `stop` (không bao gồm `stop`), với bước nhảy `step`.
C. Từ `start` đến `stop` (bao gồm cả `stop`), với bước nhảy mặc định là 1.
D. Từ `start` đến `stop` (không bao gồm `stop`), với bước nhảy mặc định là -1.
26. Hàm `len()` trong Python trả về giá trị gì?
A. Phần tử cuối cùng của một chuỗi hoặc list.
B. Độ dài (số phần tử) của một chuỗi, list, tuple, dictionary,...
C. Giá trị lớn nhất trong một list số.
D. Kiểu dữ liệu của một biến.
27. Đoạn code Python sau sẽ in ra kết quả gì:
`a = 5
def change_value(a):
a = 10
change_value(a)
print(a)`
A. 10
B. 5
C. Error
D. None
28. Hàm `map(function, iterable)` trong Python làm gì?
A. Lọc các phần tử trong `iterable` dựa trên `function`.
B. Áp dụng `function` lên mỗi phần tử của `iterable` và trả về một iterator chứa kết quả.
C. Kết hợp các phần tử của `iterable` thành một giá trị duy nhất sử dụng `function`.
D. Sắp xếp các phần tử của `iterable` dựa trên `function`.
29. Phương thức `split()` trong Python dùng để làm gì với chuỗi?
A. Nối nhiều chuỗi thành một chuỗi lớn hơn.
B. Chia một chuỗi thành một list các chuỗi con dựa trên một dấu phân cách.
C. Tìm kiếm vị trí của một chuỗi con trong một chuỗi.
D. Thay thế một chuỗi con bằng một chuỗi khác.
30. Điều gì là ưu điểm chính của việc sử dụng thư viện NumPy trong Python?
A. Cung cấp khả năng lập trình web.
B. Cung cấp hiệu suất cao cho các phép toán trên mảng và ma trận số.
C. Hỗ trợ xây dựng giao diện người dùng đồ họa.
D. Cung cấp các công cụ để làm việc với cơ sở dữ liệu.