1. Đoạn code Python sau sẽ in ra kết quả gì?
```python
def outer_function(x):
def inner_function(y):
return x + y
return inner_function
closure = outer_function(10)
print(closure(5))
```
A. 5
B. 10
C. 15
D. Báo lỗi NameError
2. Phương thức `join()` trong Python được sử dụng cho kiểu dữ liệu nào và có chức năng gì?
A. List, để nối các phần tử của list thành một chuỗi.
B. String, để nối hai chuỗi lại với nhau.
C. Dictionary, để nối các key và value thành một chuỗi.
D. Set, để hợp nhất các phần tử của set thành một chuỗi.
3. Regex (Regular Expression) trong Python (module `re`) được sử dụng để làm gì?
A. Để tạo giao diện người dùng đồ họa.
B. Để thực hiện các phép toán số học phức tạp.
C. Để tìm kiếm, so khớp và thao tác với các chuỗi dựa trên các mẫu (pattern) phức tạp.
D. Để quản lý file và thư mục.
4. Phương thức `pop()` trong Python hoạt động như thế nào trên list?
A. Xóa tất cả các phần tử khỏi list.
B. Xóa phần tử đầu tiên của list.
C. Xóa phần tử cuối cùng của list và trả về phần tử đó, hoặc xóa phần tử tại một index cụ thể và trả về nó.
D. Đếm số lần xuất hiện của một phần tử trong list.
5. Trong Python, `pip` là viết tắt của cụm từ nào và nó được sử dụng để làm gì?
A. Python Input Package, dùng để nhập dữ liệu từ người dùng.
B. Package Installer for Python, là trình quản lý gói (package manager) chuẩn của Python, dùng để cài đặt và quản lý các thư viện và dependencies từ PyPI (Python Package Index).
C. Python Integrated Programming, là môi trường phát triển tích hợp (IDE) chính thức của Python.
D. Python Internet Protocol, dùng để xử lý các giao thức mạng trong Python.
6. Kết quả của biểu thức `5 + `5`` trong Python là gì?
A. 10
B. `55`
C. Báo lỗi TypeError
D. 5.5
7. Trong Python, biến được khai báo như thế nào?
A. Sử dụng từ khóa `var` trước tên biến.
B. Sử dụng từ khóa `let` hoặc `const` trước tên biến.
C. Không cần khai báo kiểu dữ liệu, chỉ cần gán giá trị cho tên biến.
D. Phải khai báo kiểu dữ liệu rõ ràng trước tên biến (ví dụ: int x, string name).
8. Để in ra dòng chữ `Hello, World!` trong Python, cú pháp nào sau đây là đúng?
A. print(`Hello, World!`)
B. Println(`Hello, World!`);
C. echo `Hello, World!`
D. console.log(`Hello, World!`)
9. Phương thức `split()` trong Python được sử dụng cho kiểu dữ liệu nào và có chức năng gì?
A. List, để chia list thành các list con.
B. String, để 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. Dictionary, để chia dictionary thành các dictionary con.
D. Tuple, để chia tuple thành các tuple con.
10. Module `os` trong Python thường được sử dụng để làm gì?
A. Để xử lý các hoạt động liên quan đến hệ điều hành, như làm việc với file và thư mục, tương tác với môi trường hệ thống.
B. Để thực hiện các phép toán số học phức tạp.
C. Để tạo giao diện người dùng đồ họa (GUI).
D. Để làm việc với cơ sở dữ liệu.
11. Đoạn code Python sau sẽ in ra kết quả gì?
```python
x = [1, 2, 3]
y = x
y.append(4)
print(x)
```
A. [1, 2, 3]
B. [1, 2, 3, 4]
C. [1, 2]
D. Báo lỗi
12. Trong Python, kiểu dữ liệu nào sau đây là kiểu dữ liệu bất biến (immutable)?
A. list
B. dictionary
C. tuple
D. set
13. 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 độ cài đặt thư viện Python.
B. Để quản lý các phiên bản Python khác nhau trên cùng một máy.
C. Để tạo môi trường làm việc độc lập cho các dự án Python, giúp tránh xung đột phiên bản thư viện giữa các dự án.
D. Để mã hóa code Python trước khi deploy.
14. Decorator trong Python được sử dụng để làm gì?
A. Để tối ưu hóa tốc độ thực thi của hàm.
B. Để sửa đổi hành vi của hàm hoặc class một cách linh hoạt, thường dùng để thêm chức năng bổ sung mà không sửa đổi trực tiếp code của hàm.
C. Để tạo tài liệu (documentation) cho hàm.
D. Để kiểm tra kiểu dữ liệu của các tham số truyền vào hàm.
15. Trong Python, khái niệm `list comprehension` dùng để làm gì?
A. Để nén file list.
B. Để tạo list một cách ngắn gọn và dễ đọc.
C. Để sắp xếp các phần tử trong list.
D. Để xóa các phần tử trùng lặp trong list.
16. Trong Python, toán tử `%` được gọi là gì và nó thực hiện phép toán nào?
A. Toán tử chia lấy nguyên, thực hiện phép chia lấy phần nguyên.
B. Toán tử lũy thừa, thực hiện phép tính lũy thừa.
C. Toán tử modulo, thực hiện phép chia lấy phần dư.
D. Toán tử gán, thực hiện phép gán giá trị.
17. Kiểu dữ liệu `dictionary` trong Python được biểu diễn bằng cặp key-value. Cách truy cập giá trị (value) của một key cụ thể trong dictionary là gì?
A. dictionary[index]
B. dictionary.get(key)
C. dictionary(key)
D. dictionary->key
18. Hàm `lambda` trong Python là gì?
A. Một hàm được định nghĩa bằng từ khóa `lambda` và có thể có nhiều dòng code.
B. Một hàm ẩn danh (anonymous function) nhỏ, có thể có nhiều tham số nhưng chỉ có một biểu thức.
C. Một hàm đệ quy đặc biệt.
D. Một hàm được sử dụng để xử lý lỗi.
19. 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. extend()
D. add()
20. Hàm nào sau đây được sử dụng để đọc dữ liệu từ một file trong Python?
A. write()
B. open()
C. read()
D. load()
21. Kết quả của đoạn code Python sau là gì?
```python
def my_function(a, b=10):
return a + b
print(my_function(5))
```
A. 5
B. 10
C. 15
D. Báo lỗi TypeError
22. Trong Python, `magic methods` (phương thức ma thuật) là gì và chúng thường bắt đầu và kết thúc bằng ký tự nào?
A. Là các phương thức được sử dụng để tạo hiệu ứng đồ họa đẹp mắt, bắt đầu và kết thúc bằng ký tự `@`.
B. Là các phương thức đặc biệt trong class Python, định nghĩa hành vi của đối tượng trong các phép toán và hoạt động khác nhau (ví dụ: `__init__`, `__str__`, `__add__`), bắt đầu và kết thúc bằng hai dấu gạch dưới `__`.
C. Là các phương thức được tự động tạo ra bởi trình biên dịch Python, bắt đầu và kết thúc bằng ký tự `$`.
D. Là các phương thức dùng để mã hóa code Python, bắt đầu và kết thúc bằng ký tự `#`.
23. Vòng lặp `for` trong Python thường được sử dụng để làm gì?
A. Thực hiện một khối code một lần duy nhất.
B. Lặp lại một khối code với số lần cố định.
C. Lặp lại một khối code cho đến khi một điều kiện sai.
D. Lặp lại một khối code trên các phần tử của một iterable.
24. Trong lập trình hướng đối tượng (OOP) với Python, `inheritance` (kế thừa) có nghĩa là gì?
A. Một class có thể chứa nhiều đối tượng.
B. Một class có thể kế thừa các thuộc tính và phương thức từ một hoặc nhiều class khác (class cha).
C. Các đối tượng của một class có thể chia sẻ dữ liệu với nhau.
D. Một class có thể tự động tạo ra các class con.
25. Hàm `len()` trong Python được sử dụng để làm gì?
A. Tính tổng các phần tử trong một list.
B. Tìm phần tử lớn nhất trong một list.
C. Trả về độ dài (số lượng phần tử) của một đối tượng.
D. Kiểm tra xem một phần tử có tồn tại trong list hay không.
26. Đoạn code Python sau sẽ in ra kết quả gì?
```python
x = 10
y = 5
if x > y:
print(`x lớn hơn y`)
elif x < y:
print(`x nhỏ hơn y`)
else:
print(`x bằng y`)
```
A. x nhỏ hơn y
B. x lớn hơn y
C. x bằng y
D. Không in ra gì
27. 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 hàm đặc biệt luôn trả về một list.
B. Một hàm đặc biệt giúp tạo ra một chuỗi các giá trị một cách tuần tự, tại một thời điểm một giá trị, giúp tiết kiệm bộ nhớ, đặc biệt khi làm việc với dữ liệu lớn.
C. Một công cụ để tạo tài liệu tự động cho code.
D. Một module để quản lý bộ nhớ.
28. Exception handling (xử lý ngoại lệ) trong Python đượ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
29. Phương thức `strip()` trong Python được sử dụng cho kiểu dữ liệu nào và có chức năng gì?
A. List, để loại bỏ các phần tử trùng lặp.
B. String, để loại bỏ khoảng trắng (whitespace) ở đầu và cuối chuỗi.
C. Dictionary, để loại bỏ các key có giá trị None.
D. Tuple, để loại bỏ các phần tử None.
30. Phương thức `__init__` trong một class Python có vai trò gì?
A. Để hủy đối tượng khi nó không còn được sử dụng.
B. Để định nghĩa các thuộc tính tĩnh của class.
C. Là constructor (hàm khởi tạo) của class, được gọi tự động khi một đối tượng của class được tạo ra.
D. Để in thông tin về đối tượng.