1. Cho đoạn code: `a = [1, 2, 3]; b = a; b[0] = 4`. Giá trị của `a` sau khi thực hiện là gì?
A. [1, 2, 3]
B. [4, 2, 3]
C. [1, 4, 3]
D. [4, 4, 3]
2. Hàm `range(start, stop, step)` tạo ra dãy số như thế nào?
A. Từ 'start′ đến 'stop′ (bao gồm 'stop′), bước nhảy 'step′
B. Từ 'start′ đến 'stop′ (không bao gồm 'stop′), bước nhảy 'step′
C. Từ 0 đến 'stop′ (không bao gồm 'stop′), bước nhảy 'step′
D. Từ 0 đến 'stop′ (bao gồm 'stop′), bước nhảy 'step′
3. Kiểu dữ liệu dictionary trong Python được biểu diễn bằng cặp ký tự nào?
4. Trong Python, kiểu dữ liệu nào là bất biến (immutable)?
A. list
B. dictionary
C. set
D. tuple
5. Phương thức `pop()` khi được gọi trên một list sẽ làm gì nếu không có index được cung cấp?
A. Trả về phần tử đầu tiên và xóa nó
B. Trả về phần tử cuối cùng và xóa nó
C. Trả về phần tử ở giữa và xóa nó
D. Gây ra lỗi
6. Generator trong Python là gì và lợi ích chính của việc sử dụng generator là gì?
A. Một loại biến đặc biệt, giúp code dễ đọc hơn
B. Một hàm trả về một iterator, giúp tiết kiệm bộ nhớ
C. Một cách để tạo class nhanh hơn
D. Một công cụ debug code hiệu quả
7. Phương thức `sort()` và hàm `sorted()` khác nhau như thế nào khi dùng với list trong Python?
A. `sort()` tạo list mới đã sắp xếp, `sorted()` sắp xếp list tại chỗ
B. `sort()` sắp xếp list tại chỗ, `sorted()` tạo list mới đã sắp xếp
C. Không có sự khác biệt
D. `sort()` dùng cho số, `sorted()` dùng cho chuỗi
8. Trong Python, '==' dùng để làm gì?
A. Gán giá trị
B. So sánh bằng
C. So sánh lớn hơn
D. So sánh nhỏ hơn
9. Kiểu dữ liệu nào sau đây KHÔNG phải là kiểu dữ liệu cơ bản trong Python?
A. int
B. float
C. string
D. array
10. Phương thức nào sau đây được sử dụng để thêm một phần tử vào cuối danh sách (list) trong Python?
A. insert()
B. append()
C. add()
D. extend()
11. Hàm `len()` trong Python trả về cái gì?
A. Giá trị lớn nhất trong một list
B. Tổng các phần tử trong một list số
C. Độ dài của một chuỗi hoặc list
D. Kiểu dữ liệu của biến
12. Cấu trúc điều khiển nào sau đây được sử dụng để lặp lại một khối lệnh trong Python cho đến khi một điều kiện sai?
A. if
B. for
C. while
D. else
13. Khi nào nên sử dụng tuple thay vì list trong Python?
A. Khi cần thay đổi dữ liệu thường xuyên
B. Khi dữ liệu cần được bảo vệ không bị thay đổi (tính bất biến)
C. Khi cần tốc độ truy cập nhanh hơn
D. Khi cần lưu trữ số lượng lớn dữ liệu
14. Phương thức `__str__` trong class Python được dùng để làm gì?
A. Khởi tạo đối tượng
B. Xóa đối tượng
C. Biểu diễn đối tượng dưới dạng chuỗi (dễ đọc)
D. So sánh hai đối tượng
15. Decorator trong Python thường được dùng để làm gì?
A. Tối ưu hóa tốc độ code
B. Sửa lỗi code
C. Mở rộng chức năng của hàm hoặc class
D. Thay đổi tên biến
16. Từ khóa nào sau đây được sử dụng để định nghĩa một hàm trong Python?
A. function
B. def
C. func
D. define
17. Context manager trong Python (ví dụ: `with open(…)`) được sử dụng để làm gì?
A. Tăng tốc độ đọc∕ghi file
B. Tự động quản lý tài nguyên (ví dụ: đóng file sau khi dùng xong)
C. Mã hóa dữ liệu trong file
D. Kiểm tra lỗi file
18. Hàm nào sau đây được sử dụng để in ra màn hình trong Python?
A. input()
B. print()
C. display()
D. output()
19. Để import một module tên 'math′ trong Python, cú pháp nào sau đây là đúng?
A. include math
B. import.math
C. use math
D. import math
20. Biểu thức `[x**2 for x in range(5)]` trong Python tạo ra list nào?
A. [0, 1, 2, 3, 4]
B. [1, 4, 9, 16, 25]
C. [0, 1, 4, 9, 16]
D. [0, 2, 4, 6, 8]
21. Đ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ề None
B. Trả về 0
C. Gây ra lỗi KeyError
D. Tự động thêm key đó vào dictionary với giá trị None
22. Toán tử nào sau đây được sử dụng để tính lũy thừa trong Python?
23. Phương thức `split()` trên chuỗi trong Python thường trả về kiểu dữ liệu nào?
A. str
B. tuple
C. list
D. set
24. Trong Python, 'try…except′ được sử dụng để làm gì?
A. Định nghĩa hàm
B. Xử lý ngoại lệ
C. Khai báo biến
D. Tạo vòng lặp
25. Phương thức nào sau đây loại bỏ tất cả các khoảng trắng ở đầu và cuối chuỗi trong Python?
A. replace()
B. strip()
C. split()
D. trim()
26. Trong Python, `is` và `==` khác nhau như thế nào?
A. `is` so sánh giá trị, `==` so sánh identity
B. `is` so sánh identity, `==` so sánh giá trị
C. Không có sự khác biệt
D. `is` nhanh hơn `==`
27. Lambda function trong Python là gì và thường được dùng trong trường hợp nào?
A. Hàm vô danh, thường dùng cho các hàm nhỏ, đơn giản
B. Hàm đệ quy, dùng để giải quyết bài toán phức tạp
C. Hàm có tốc độ thực thi nhanh hơn hàm thông thường
D. Hàm dùng để xử lý ngoại lệ
28. Đâu là cách chú thích một dòng code trong Python?
A. ∕∕ Comment
B. ∕* Comment *∕
C. # Comment
D. -- Comment
29. Trong lập trình hướng đối tượng Python, phương thức khởi tạo (constructor) của một class có tên đặc biệt là gì?
A. __init__
B. __constructor__
C. init()
D. constructor()
30. Để mở một file ở chế độ chỉ đọc trong Python, bạn sử dụng mode nào sau đây trong hàm open()?
A. 'w′
B. 'a′
C. 'r′
D. 'x′