1. Cấu trúc điều khiển nào sau đây KHÔNG có trong Python?
A. if-elif-else
B. for loop
C. while loop
D. switch-case
2. Trong Python, `pip` là viết tắt của cụm từ nào và dùng để làm gì?
A. Python Input Process, dùng để nhận dữ liệu từ người dùng.
B. Preferred Installer Program, dùng để quản lý và cài đặt các package (thư viện) Python.
C. Python Integrated Platform, môi trường phát triển tích hợp cho Python.
D. Programming in Python, ngôn ngữ lập trình Python.
3. Kiểu dữ liệu nào sau đây thường được sử dụng để lưu trữ chuỗi văn bản trong Python?
A. int
B. float
C. str
D. bool
4. Phương thức `pop()` của list làm gì?
A. Xóa tất cả phần tử khỏi list.
B. Xóa phần tử cuối cùng của list và trả về nó.
C. Thêm một phần tử vào đầu list.
D. Đảo ngược thứ tự các phần tử trong list.
5. Sự khác biệt chính giữa `==` và `is` trong Python là gì?
A. `==` so sánh giá trị, `is` so sánh kiểu dữ liệu.
B. `==` so sánh tham chiếu đối tượng, `is` so sánh giá trị.
C. `==` so sánh giá trị bằng nhau, `is` so sánh identity (cùng một đối tượng trong bộ nhớ).
D. `==` chỉ dùng cho số, `is` dùng cho mọi kiểu dữ liệu.
6. Đ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ề một dictionary mới rỗng.
C. Gây ra lỗi KeyError.
D. Tự động thêm key đó vào dictionary với giá trị mặc định.
7. Đâu là cách khai báo một hàm (function) trong Python?
A. function myFunction():
B. def myFunction():
C. func myFunction():
D. procedure myFunction():
8. Đâu là cách chú thích một dòng lệnh trong Python?
A. // Comment
B. /* Comment */
C. # Comment
D. ` Comment
9. Phương thức `split()` của string trong Python làm gì?
A. Nối hai chuỗi lại với nhau.
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 tách.
C. Đảo ngược một chuỗi.
D. Tìm kiếm một chuỗi con trong chuỗi và thay thế nó.
10. Khối lệnh `finally` trong cấu trúc `try-except-finally` được thực thi khi nào?
A. Chỉ khi có lỗi xảy ra trong khối `try`.
B. Chỉ khi không có lỗi xảy ra trong khối `try`.
C. Luôn luôn được thực thi, bất kể có lỗi xảy ra hay không.
D. Chỉ khi khối `except` được thực thi.
11. Trong Python, toán tử nào được sử dụng để gán giá trị cho biến?
12. Generator trong Python khác gì so với list?
A. Generator nhanh hơn list trong mọi trường hợp.
B. Generator lưu trữ tất cả các giá trị cùng một lúc trong bộ nhớ, còn list thì không.
C. Generator tạo ra các giá trị một cách tuần tự và chỉ khi được yêu cầu, giúp tiết kiệm bộ nhớ, đặc biệt với dữ liệu lớn.
D. Generator có thể thay đổi được (mutable), còn list thì không.
13. Hàm `len()` trong Python trả về cái gì?
A. Tổng các phần tử trong một list
B. Số lượng ký tự trong một chuỗi
C. Độ dài của một đối tượng (ví dụ: số phần tử trong list, số ký tự trong chuỗi)
D. Kiểu dữ liệu của đối tượng
14. Trong Python, `scope` (phạm vi) của biến xác định điều gì?
A. Kiểu dữ liệu của biến.
B. Thời gian tồn tại của biến trong bộ nhớ.
C. Vùng code mà biến có thể được truy cập và sử dụng.
D. Giá trị lớn nhất mà biến có thể lưu trữ.
15. Phương thức nào sau đây được sử dụng để thêm một phần tử vào cuối list trong Python?
A. insert()
B. append()
C. add()
D. extend()
16. Để cài đặt một package Python bằng pip, bạn sử dụng lệnh nào sau đây trong terminal/command line?
17. List comprehension trong Python là 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 các list hiện có.
C. Một kiểu dữ liệu list đặc biệt chỉ chứa số nguyên.
D. Một phương thức để nén list để tiết kiệm bộ nhớ.
18. Lambda function trong Python là gì?
A. Một hàm có tên.
B. Một hàm vô danh (anonymous function) nhỏ, thường được sử dụng cho các thao tác đơn giản.
C. Một hàm chỉ có thể được gọi một lần.
D. Một hàm được định nghĩa bên trong một class.
19. Phương thức `__init__` trong class Python được gọi khi nào?
A. Khi class được định nghĩa.
B. Khi một đối tượng (instance) 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 đối tượng bị xóa khỏi bộ nhớ.
20. Phương thức `strip()` của string trong Python làm gì?
A. Chuyển đổi chuỗi thành chữ hoa.
B. Loại bỏ khoảng trắng ở đầu và cuối chuỗi.
C. Đếm số ký tự trong chuỗi.
D. Tìm kiếm một chuỗi con trong chuỗi.
21. Trong lập trình hướng đối tượng Python, `inheritance` (kế thừa) cho phép điều gì?
A. Tạo ra các đối tượng độc lập hoàn toàn.
B. Một lớp (class) có thể kế thừa thuộc tính và phương thức từ một lớp khác.
C. Giới hạn quyền truy cập vào dữ liệu của đối tượng.
D. Tăng tốc độ thực thi chương trình.
22. Decorator trong Python được sử dụng để làm gì?
A. Tối ưu hóa hiệu suất code.
B. Sửa đổi hoặc mở rộng chức năng của hàm hoặc lớp mà không cần thay đổi trực tiếp code của chúng.
C. Kiểm soát quyền truy cập vào biến và hàm.
D. Tạo ra tài liệu tự động cho code.
23. Để mở một file để đọc trong Python, chế độ nào sau đây thường được sử dụng?
A. `w`
B. `a`
C. `r`
D. `x`
24. Phương thức `get()` của dictionary trong Python khác gì so với truy cập trực tiếp bằng `[]`?
A. `get()` nhanh hơn `[]`.
B. `get()` có thể thêm key mới vào dictionary, `[]` thì không.
C. Nếu key không tồn tại, `get()` trả về None (hoặc giá trị mặc định), trong khi `[]` gây ra lỗi KeyError.
D. `get()` chỉ dùng cho string keys, `[]` dùng cho mọi kiểu key.
25. Hàm `input()` trong Python trả về giá trị có kiểu dữ liệu gì?
A. int
B. float
C. str
D. bool
26. Hàm nào sau đây được sử dụng để in ra màn hình trong Python?
A. display()
B. show()
C. print()
D. output()
27. Hàm `map()` trong Python được sử dụng để làm gì?
A. Ánh xạ các giá trị từ list này sang list khác dựa trên index.
B. Áp dụng một hàm cho mỗi phần tử của một iterable và trả về một iterator chứa kết quả.
C. Tạo ra một bản đồ địa lý từ dữ liệu.
D. Kiểm tra xem một giá trị có tồn tại trong một iterable hay không.
28. Module `math` trong Python cung cấp chức năng gì?
A. Xử lý chuỗi
B. Các hàm toán học
C. Làm việc với file và thư mục
D. Xây dựng giao diện người dùng đồ họa
29. Đâu là kiểu dữ liệu KHÔNG thay đổi (immutable) trong Python?
A. list
B. tuple
C. dictionary
D. set
30. Trong Python, `indexing` trong list và string bắt đầu từ số mấy?
A. -1
B. 1
C. 0
D. Tuỳ thuộc vào kích thước của list/string