1. Khi đọc một tệp văn bản trong Python bằng chế độ "r", hàm nào thường được sử dụng để đọc toàn bộ nội dung của tệp thành một chuỗi duy nhất?
A. readline()
B. readlines()
C. read()
D. get_content()
2. Khi sử dụng `with open("data.txt", "r") as f:`, nếu tệp `data.txt` không tồn tại, điều gì sẽ xảy ra?
A. Tệp `data.txt` sẽ được tạo ra.
B. Chương trình sẽ báo lỗi `FileExistsError`.
C. Chương trình sẽ báo lỗi `FileNotFoundError`.
D. Tệp sẽ được mở ở chế độ ghi.
3. Khi làm việc với tệp trong Python, việc sử dụng khối `with open(...) as f:` mang lại lợi ích chính nào?
A. Tăng tốc độ đọc/ghi tệp.
B. Tự động đóng tệp ngay cả khi có lỗi xảy ra.
C. Cho phép truy cập tệp từ nhiều tiến trình cùng lúc.
D. Giảm dung lượng bộ nhớ sử dụng cho tệp.
4. Bạn cần lưu trữ một tập hợp các giá trị mà không quan tâm đến thứ tự và không cho phép trùng lặp trong Python. Cấu trúc dữ liệu nào phù hợp nhất cho mục đích này?
A. List
B. Tuple
C. Set
D. Dictionary
5. Cho danh sách `items = ["apple", "banana", "cherry"]`. Lệnh `items.insert(1, "orange")` sẽ làm cho danh sách `items` trở thành gì?
A. ["apple", "orange", "banana", "cherry"]
B. ["apple", "banana", "orange", "cherry"]
C. ["orange", "apple", "banana", "cherry"]
D. ["apple", "banana", "cherry", "orange"]
6. Trong Python, để xóa một phần tử khỏi danh sách dựa trên giá trị của nó (không phải chỉ số), bạn sử dụng phương thức nào?
A. pop()
B. remove()
C. del
D. clear()
7. Cho danh sách `numbers = [5, 1, 4, 2, 8]`. Lệnh sắp xếp nào sau đây sẽ làm thay đổi danh sách `numbers` thành `[1, 2, 4, 5, 8]`?
A. sorted(numbers)
B. numbers.sort()
C. numbers.order()
D. numbers.arrange()
8. Đâu là sự khác biệt chính giữa `list.sort()` và `sorted(list)` trong Python?
A. `sort()` sắp xếp tăng dần, `sorted()` sắp xếp giảm dần.
B. `sort()` trả về một danh sách mới, `sorted()` sửa đổi danh sách gốc.
C. `sort()` sửa đổi danh sách gốc, `sorted()` trả về một danh sách mới đã sắp xếp.
D. `sort()` chỉ dùng cho số, `sorted()` dùng cho mọi kiểu dữ liệu.
9. Phương thức `extend()` của danh sách trong Python được sử dụng để làm gì?
A. Thêm một phần tử vào cuối danh sách.
B. Chèn một phần tử vào vị trí cụ thể của danh sách.
C. Nối các phần tử của một iterable (ví dụ: danh sách khác, tuple) vào cuối danh sách hiện tại.
D. Xóa tất cả các phần tử khỏi danh sách.
10. Bạn muốn đọc một tệp văn bản và xử lý từng dòng một cách hiệu quả, đặc biệt với các tệp lớn. Cách tiếp cận nào sau đây là tốt nhất trong Python?
A. Đọc toàn bộ tệp vào bộ nhớ bằng `read()` rồi xử lý.
B. Sử dụng vòng lặp `for line in file_object:` để duyệt qua từng dòng.
C. Sử dụng `readlines()` và sau đó lặp qua danh sách kết quả.
D. Mở tệp ở chế độ nhị phân và đọc từng byte.
11. Khi làm việc với tệp nhị phân trong Python (chế độ "rb" hoặc "wb"), dữ liệu được đọc/ghi dưới dạng nào?
A. Chuỗi ký tự (string).
B. Danh sách các số nguyên (integers).
C. Byte (bytes).
D. Bytearray.
12. Trong Python, khi làm việc với tệp văn bản, chế độ mở tệp nào được sử dụng để chỉ cho phép ghi dữ liệu mới vào cuối tệp, không xóa nội dung cũ?
A. "w"
B. "r"
C. "a"
D. "x"
13. Giả sử bạn đã mở một tệp văn bản trong Python bằng `f = open("my_file.txt", "w")`. Sau khi ghi dữ liệu, bạn cần đảm bảo mọi thay đổi được lưu vào đĩa. Lệnh nào thực hiện điều này?
A. f.close()
B. f.flush()
C. f.save()
D. f.commit()
14. Trong Python, câu lệnh `my_list = [1, 2, 3]` và sau đó là `my_list.append(4)`. Giá trị trả về của `my_list.append(4)` là gì?
A. [1, 2, 3, 4]
B. None
C. 4
D. [4]
15. Giả sử bạn có một danh sách các số nguyên trong Python: `numbers = [10, 25, 5, 40, 15]`. Lệnh nào sau đây sẽ trả về phần tử thứ ba của danh sách này (theo chỉ số bắt đầu từ 0)?
A. numbers[3]
B. numbers[2]
C. numbers[4]
D. numbers.get(2)
16. Khi ghi dữ liệu vào một tệp văn bản trong Python bằng chế độ "w", nếu bạn muốn đảm bảo rằng mọi ký tự được ghi vào tệp đều được mã hóa đúng chuẩn UTF-8, bạn nên chỉ định tham số nào khi mở tệp?
A. encoding="ascii"
B. encoding="latin-1"
C. encoding="utf-8"
D. encoding="unicode"
17. Trong Python, khi mở một tệp ở chế độ "w" (write), điều gì sẽ xảy ra nếu tệp đã tồn tại?
A. Dữ liệu mới sẽ được thêm vào cuối tệp.
B. Một ngoại lệ `FileExistsError` sẽ được ném ra.
C. Nội dung cũ của tệp sẽ bị xóa và tệp sẽ được tạo lại trống.
D. Python sẽ yêu cầu người dùng xác nhận trước khi ghi đè.
18. Trong Python, bạn muốn tạo một mảng (tương tự như danh sách nhưng có thể tối ưu cho tính toán số học) để lưu trữ các số nguyên. Bạn có thể sử dụng thư viện nào?
A. math
B. collections
C. numpy
D. sys
19. Cho đoạn mã Python sau: `my_list = [1, 2, 3, 4, 5]`. Lệnh `my_list.pop(1)` sẽ trả về giá trị nào và làm thay đổi danh sách `my_list` như thế nào?
A. Trả về 2, danh sách còn [1, 3, 4, 5]
B. Trả về 1, danh sách còn [2, 3, 4, 5]
C. Trả về 2, danh sách còn [1, 2, 3, 4, 5]
D. Trả về 3, danh sách còn [1, 2, 4, 5]
20. Trong Python, để truy cập vào phần tử cuối cùng của một danh sách mà không cần biết độ dài của nó, bạn có thể sử dụng chỉ số nào?
A. 0
B. 1
C. -1
D. len(list) - 1
21. Nếu bạn muốn đọc từng dòng của một tệp văn bản trong Python và lưu chúng vào một danh sách, mỗi phần tử của danh sách là một dòng, bạn nên sử dụng phương thức nào?
A. read()
B. readline()
C. readlines()
D. get_lines()
22. Bạn có một tệp `students.txt` chứa các dòng, mỗi dòng là tên của một học sinh. Để đọc tất cả các tên này và lưu chúng vào một danh sách, bạn có thể sử dụng cách nào sau đây?
A. `with open("students.txt", "r") as f: data = f.read().splitlines()`
B. `with open("students.txt", "r") as f: data = f.readlines()`
C. Cả hai cách trên đều đúng.
D. Chỉ cách 1 đúng.
23. Trong Python, bạn muốn thêm một phần tử mới vào cuối một danh sách. Phương thức nào của danh sách nên được sử dụng?
A. insert()
B. append()
C. extend()
D. add()
24. Cho danh sách `data = [1, 2, 3, 4, 5]`. Lệnh `data[1:4]` sẽ trả về một danh sách con bao gồm những phần tử nào?
A. [1, 2, 3, 4]
B. [2, 3, 4]
C. [1, 2, 3]
D. [2, 3, 4, 5]
25. Để lấy độ dài (số lượng phần tử) của một danh sách trong Python, bạn sử dụng hàm nào?
A. size()
B. length()
C. count()
D. len()