Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Lập Trình Python - Đề 01 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.
Câu 1: Đâu là kiểu dữ liệu không thay đổi (immutable) trong Python?
- A. list
- B. dict
- C. tuple
- D. set
Câu 2: Cho đoạn code sau:
```python
x = [1, 2, 3]
y = x
y[0] = 0
print(x)
```
Đoạn code trên in ra kết quả gì và tại sao?
- A. [0, 2, 3], vì y tham chiếu đến x nên thay đổi y cũng thay đổi x
- B. [1, 2, 3], vì y là bản sao của x nên thay đổi y không ảnh hưởng đến x
- C. [0, 2, 3], vì Python tự động tạo bản sao khi gán list
- D. [1, 2, 0], vì y chỉ thay đổi phần tử cuối cùng của x
Câu 3: Hàm `range(start, stop, step)` trong Python tạo ra dãy số như thế nào?
- A. Dãy số từ `start` đến `stop` (bao gồm cả `stop`) với bước nhảy `step`
- B. Dãy số từ `start` đến `stop` (không bao gồm `stop`) với bước nhảy `step`
- C. Dãy số từ `start` đến `stop` (bao gồm cả `stop`) với bước nhảy tuyệt đối là `step`
- D. Dãy số từ `start` đến `stop` (không bao gồm `stop`) với bước nhảy tuyệt đối là `step`
Câu 4: Cho đoạn code sau:
```python
def my_function(a, b=10):
return a + b
print(my_function(5))
print(my_function(5, 2))
```
Kết quả in ra của đoạn code trên là gì?
- A. 15
7
- B. 15
15
- C. 15
7
- D. 5
2
Câu 5: Phương thức `.append()` và `.extend()` khác nhau như thế nào khi sử dụng với list trong Python?
- A. `.append()` thêm nhiều phần tử, `.extend()` thêm một phần tử
- B. `.append()` chỉ dùng cho số, `.extend()` dùng cho mọi kiểu dữ liệu
- C. `.append()` tạo list mới, `.extend()` sửa đổi list hiện tại
- D. `.append()` thêm một phần tử vào cuối list, `.extend()` thêm các phần tử của một iterable vào cuối list
Câu 6: Toán tử `%` trong Python được gọi là gì và thực hiện phép toán nào?
- A. Toán tử phần trăm, tính phần trăm của một số
- B. Toán tử modulo, chia lấy phần dư của phép chia
- C. Toán tử lũy thừa, tính lũy thừa của một số
- D. Toán tử chia nguyên, chia lấy phần nguyên của phép chia
Câu 7: Câu lệnh `if __name__ ==
- A. Bắt đầu một hàm main() trong Python
- B. Khai báo module chính của chương trình
- C. Chạy code chỉ khi script được thực thi trực tiếp, không chạy khi import module
- D. Đảm bảo code chạy trên mọi hệ điều hành
Câu 8: Cho đoạn code sau:
```python
try:
result = 10 / 0
except ZeroDivisionError:
result =
- A. Hoàn thành
Lỗi chia cho 0
- B. Lỗi chia cho 0
Hoàn thành
- C. Hoàn thành
None
- D. Chương trình sẽ bị lỗi và không in ra gì
Câu 9: Đâu là cách đúng để mở một file văn bản ở chế độ đọc trong Python, đảm bảo file được đóng sau khi sử dụng, ngay cả khi có lỗi xảy ra?
- A. ```python
f = open(
- B. ```python
with open(
- C. ```python
f = open(
- D. ```python
try:
f = open(
Câu 10: Kiểu dữ liệu `dict` trong Python được sử dụng để lưu trữ dữ liệu dạng nào?
- A. Dãy số tuần tự
- B. Tập hợp các giá trị không trùng lặp
- C. Danh sách các phần tử có thứ tự
- D. Cặp key-value (khóa-giá trị)
Câu 11: Phương thức `.split()` và `.join()` thường được sử dụng với kiểu dữ liệu nào trong Python?
- A. str (string)
- B. list
- C. tuple
- D. dict
Câu 12: Cho đoạn code sau:
```python
numbers = [1, 2, 3, 4, 5]
squared_numbers = [n**2 for n in numbers if n % 2 == 0]
print(squared_numbers)
```
Đoạn code trên sử dụng kỹ thuật gì và in ra kết quả gì?
- A. Vòng lặp for, [1, 4, 9, 16, 25]
- B. List comprehension, [4, 16]
- C. Hàm map và filter, [4, 16]
- D. Generator expression, [4, 16]
Câu 13: Hàm `map(function, iterable)` trong Python làm gì?
- A. Lọc các phần tử của iterable dựa trên điều kiện cho trước
- B. Sắp xếp các phần tử của iterable
- C. Áp dụng `function` lên từng phần tử của `iterable` và trả về một iterator
- D. Kết hợp các phần tử của nhiều iterable thành một
Câu 14: Để viết comment một dòng trong Python, bạn sử dụng ký tự nào?
- A. //
- B. /* */
- C. #!
- D. #
Câu 15: Trong Python, `True` và `False` thuộc kiểu dữ liệu nào?
- A. int
- B. bool
- C. str
- D. NoneType
Câu 16: Hàm `len()` trong Python dùng để làm gì?
- A. Tính tổng các phần tử trong một list số
- B. Tìm giá trị lớn nhất trong một list
- C. Trả về độ dài của một đối tượng (ví dụ: string, list, tuple)
- D. Kiểm tra xem một phần tử có tồn tại trong một list hay không
Câu 17: Cho đoạn code sau:
```python
x = 5
y =
- A. True
True, vì giá trị và kiểu dữ liệu đều giống nhau
- B. False
False, vì giá trị và kiểu dữ liệu đều khác nhau
- C. True
False, vì giá trị giống nhau nhưng kiểu dữ liệu khác nhau
- D. False
False, vì kiểu dữ liệu khác nhau và không cùng đối tượng
Câu 18: Trong Python, indentation (thụt lề) có vai trò gì?
- A. Xác định khối lệnh (ví dụ: trong vòng lặp, câu lệnh điều kiện, hàm)
- B. Tăng tính dễ đọc của code, nhưng không ảnh hưởng đến logic
- C. Báo hiệu lỗi cú pháp nếu không thụt lề đúng cách
- D. Chỉ có vai trò trang trí code cho đẹp
Câu 19: Cho list `numbers = [3, 1, 4, 1, 5, 9, 2, 6]`. Làm thế nào để sắp xếp list này theo thứ tự tăng dần trực tiếp (in-place)?
- A. ```python
sorted_numbers = sorted(numbers)
```
- B. ```python
numbers.sort()
```
- C. ```python
numbers = numbers.sorted()
```
- D. ```python
sorted_numbers = numbers.sort()
```
Câu 20: Module `math` trong Python cung cấp những chức năng gì?
- A. Xử lý chuỗi và văn bản
- B. Làm việc với hệ điều hành
- C. Các hàm toán học (ví dụ: căn bậc hai, lượng giác, logarit)
- D. Xử lý dữ liệu dạng bảng
Câu 21: Cho đoạn code sau:
```python
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
print(factorial(3))
```
Hàm `factorial` trên thực hiện tính toán gì và kết quả in ra là bao nhiêu?
- A. Tổng các số từ 1 đến n, kết quả 6
- B. Lũy thừa bậc n của 2, kết quả 8
- C. Số Fibonacci thứ n, kết quả 3
- D. Giai thừa của n, kết quả 6
Câu 22: Phương thức `.get(key, default)` của dictionary trong Python làm gì?
- A. Thêm một key-value mới vào dictionary
- B. Trả về giá trị của `key` nếu có, ngược lại trả về `default`
- C. Xóa key và giá trị tương ứng khỏi dictionary
- D. Kiểm tra xem `key` có tồn tại trong dictionary hay không
Câu 23: Cho đoạn code sau:
```python
for i in range(3):
for j in range(2):
print(i, j)
```
Đoạn code trên in ra bao nhiêu dòng và giá trị của `i` và `j` trong mỗi dòng?
- A. 3 dòng, (0, 0), (1, 1), (2, 2)
- B. 2 dòng, (0, 0), (1, 0)
- C. 6 dòng, (0, 0), (0, 1), (1, 0), (1, 1), (2, 0), (2, 1)
- D. 5 dòng, (0, 0), (0, 1), (1, 0), (1, 1), (2, 0)
Câu 24: Hàm `input()` trong Python trả về giá trị thuộc kiểu dữ liệu nào?
- A. str (string)
- B. int
- C. float
- D. bool
Câu 25: Để kiểm tra xem một biến `x` có phải là kiểu list hay không, bạn sử dụng hàm nào trong Python?
- A. ```python
type(x) == list
```
- B. ```python
is_list(x)
```
- C. ```python
check_type(x, list)
```
- D. ```python
isinstance(x, list)
```
Câu 26: Cho đoạn code sau:
```python
x = 10
def outer_function():
y = 5
def inner_function():
z = 2
print(x + y + z)
inner_function()
outer_function()
```
Đoạn code trên minh họa khái niệm gì trong Python và in ra kết quả bao nhiêu?
- A. Đa hình, 17
- B. Nested functions và scope, 17
- C. Closure, 17
- D. Decorators, 17
Câu 27: Generator trong Python là gì và lợi ích của việc sử dụng generator so với list là gì?
- A. Một loại hàm đặc biệt luôn trả về list, tiết kiệm thời gian chạy
- B. Một kiểu dữ liệu mới giống list, tiết kiệm bộ nhớ
- C. Một hàm tạo iterator, sinh giá trị từng bước, tiết kiệm bộ nhớ khi làm việc với dữ liệu lớn
- D. Một module đặc biệt để tạo số ngẫu nhiên, dễ sử dụng hơn list
Câu 28: Cho đoạn code sau:
```python
class Dog:
def __init__(self, name):
self.name = name
def bark(self):
print(
- A. Class và object
- B. Hàm và module
- C. Decorator
- D. Exception handling
Câu 29: Phương thức `__init__` trong class Python có vai trò gì?
- A. Xóa object khi không còn sử dụng
- B. Gọi một phương thức khác trong class
- C. Định nghĩa class method
- D. Khởi tạo thuộc tính của object khi object được tạo
Câu 30: Cho đoạn code sau:
```python
import json
data = {
- A. Đọc dữ liệu từ file JSON
- B. Ghi dữ liệu vào file JSON
- C. Chuyển đổi object Python sang chuỗi JSON
- D. Phân tích cú pháp chuỗi JSON thành object Python