Bộ 10 - Trắc nghiệm Lập trình Python online có đáp án
Thời gian còn lại: --:--
Kết quả của bạn:
Bạn đã đúng:
Bạn đã sai:
Tổng số câu:
Câu 1:
Trong Python, kiểu dữ liệu nào sau đây thuộc nhóm 'immutable' (không thể thay đổi giá trị sau khi khởi tạo)?
💡 Lời giải chi tiết:
Các kiểu dữ liệu như 'int', 'float', 'string' và 'tuple' không cho phép thay đổi nội dung sau khi đã được tạo trong bộ nhớ. Kết luận Lý giải: Tuple
Câu 2:
Kết quả của biểu thức 'print(type(10 / 2))' trong Python 3 là gì?
💡 Lời giải chi tiết:
Trong Python 3, phép chia sử dụng toán tử '/' luôn trả về một số thực (float) ngay cả khi kết quả là số nguyên. Kết luận Lý giải: Kiểu 'float'
Câu 3:
Toán tử nào được sử dụng để kiểm tra xem hai biến có cùng trỏ tới một đối tượng trong bộ nhớ hay không (kiểm tra identity)?
💡 Lời giải chi tiết:
Toán tử 'is' kiểm tra xem hai định danh có cùng tham chiếu đến một địa chỉ ô nhớ hay không, khác với '==' dùng để so sánh giá trị. Kết luận Lý giải: is
Câu 4:
Trong khối lệnh xử lý ngoại lệ 'try-except-else-finally', khối lệnh nào luôn luôn được thực thi dù có lỗi xảy ra hay không?
💡 Lời giải chi tiết:
Khối 'finally' được thiết kế để thực hiện các hành động dọn dẹp hoặc giải phóng tài nguyên và sẽ luôn chạy bất kể ngoại lệ có được ném ra hay không. Kết luận Lý giải: finally
Câu 5:
Phương thức nào của đối tượng 'dictionary' trả về một giá trị mặc định nếu 'key' không tồn tại trong từ điển thay vì gây ra lỗi?
💡 Lời giải chi tiết:
Phương thức 'get(key, default)' cho phép truy xuất giá trị của khóa và trả về giá trị mặc định (hoặc None) nếu khóa đó chưa có trong từ điển. Kết luận Lý giải: get()
Câu 6:
Kết quả của lệnh 'print('Python'[1:4])' là gì?
💡 Lời giải chi tiết:
Kỹ thuật 'slicing' trong Python lấy các ký tự từ chỉ số bắt đầu (gồm cả nó) đến chỉ số kết thúc (không gồm nó), bắt đầu từ 0. Kết luận Lý giải: yth
Câu 7:
Từ khóa nào được sử dụng để tạo một hàm ẩn danh (anonymous function) trong Python?
💡 Lời giải chi tiết:
Hàm 'lambda' cho phép định nghĩa các hàm ngắn gọn trên một dòng mà không cần sử dụng cấu trúc 'def' truyền thống. Kết luận Lý giải: lambda
Câu 8:
Cấu trúc 'List Comprehension' nào sau đây tạo ra danh sách các số chẵn từ 0 đến 8?
💡 Lời giải chi tiết:
Biểu thức '[x for x in range(9) if x % 2 == 0]' duyệt qua các số từ 0 đến 8 và chỉ giữ lại các số chia hết cho 2. Kết luận Lý giải: [x for x in range(9) if x % 2 == 0]
Câu 9:
Trong lập trình hướng đối tượng với Python, hàm '__init__' đóng vai trò gì?
💡 Lời giải chi tiết:
Hàm '__init__' là một phương thức đặc biệt tự động được gọi khi một đối tượng mới của lớp được tạo ra để khởi tạo trạng thái ban đầu. Kết luận Lý giải: Phương thức khởi tạo (constructor) để thiết lập thuộc tính cho đối tượng
Câu 10:
Tham số '*args' trong định nghĩa hàm của Python có ý nghĩa gì?
💡 Lời giải chi tiết:
Toán tử '*' trước tên tham số cho phép hàm thu thập tất cả các đối số vị trí dư thừa vào trong một đối tượng kiểu 'tuple'. Kết luận Lý giải: Cho phép hàm nhận một số lượng đối số vị trí (positional arguments) không xác định dưới dạng một 'tuple'
Câu 11:
Khi mở một tệp tin bằng hàm 'open()', chế độ (mode) nào cho phép ghi thêm dữ liệu vào cuối tệp mà không xóa nội dung cũ?
💡 Lời giải chi tiết:
Chế độ 'a' (append) mở tệp để ghi và tự động đặt con trỏ chuột ở cuối tệp, đảm bảo nội dung hiện có không bị ghi đè. Kết luận Lý giải: 'a'
Câu 12:
Hàm 'zip()' trong Python có công dụng chính là gì?
💡 Lời giải chi tiết:
Hàm 'zip()' lấy các phần tử tương ứng từ mỗi danh sách truyền vào và nhóm chúng lại thành một trình lặp của các bộ giá trị. Kết luận Lý giải: Kết hợp các phần tử từ nhiều 'iterables' có cùng chỉ số thành các cặp 'tuple'
Câu 13:
Từ khóa nào được sử dụng để truy cập và sửa đổi một biến ở phạm vi toàn cục từ bên trong một hàm?
💡 Lời giải chi tiết:
Để thông báo cho Python rằng một biến trong hàm tham chiếu đến biến được định nghĩa ở cấp độ cao nhất của module, ta dùng từ khóa 'global'. Kết luận Lý giải: global
Câu 14:
Hàm 'any([False, 0, '', None])' sẽ trả về giá trị nào?
💡 Lời giải chi tiết:
Hàm 'any()' trả về True nếu có ít nhất một phần tử trong 'iterable' là đúng (truthy), ngược lại nếu tất cả là sai (falsy) thì trả về False. Kết luận Lý giải: False
Câu 15:
Trong Python, làm thế nào để tạo một bản sao thực sự độc lập (deep copy) của một danh sách chứa các danh sách con?
💡 Lời giải chi tiết:
Hàm 'deepcopy()' tạo ra một đối tượng mới và sao chép đệ quy tất cả các đối tượng con bên trong, tránh việc thay đổi dữ liệu gốc khi sửa bản sao. Kết luận Lý giải: Sử dụng hàm 'copy.deepcopy()' từ module 'copy'
Câu 16:
Kết quả của biểu thức '3 * (1, 2)' trong Python là gì?
💡 Lời giải chi tiết:
Khi nhân một số nguyên với một 'sequence' (như list hoặc tuple), Python sẽ thực hiện phép lặp lại (repetition) các phần tử của sequence đó. Kết luận Lý giải: (1, 2, 1, 2, 1, 2)
Câu 17:
Đặc điểm quan trọng nhất của kiểu dữ liệu 'Set' (tập hợp) trong Python là gì?
💡 Lời giải chi tiết:
Kiểu 'Set' là một cấu trúc dữ liệu không có thứ tự và tự động loại bỏ mọi phần tử trùng lặp khi được thêm vào. Kết luận Lý giải: Chứa các phần tử duy nhất và không có thứ tự
Câu 18:
Ký hiệu nào được sử dụng để bắt đầu một 'decorator' trong Python?
💡 Lời giải chi tiết:
Cú pháp '@' được đặt phía trên định nghĩa hàm hoặc lớp để áp dụng một hàm bọc (wrapper) nhằm thay đổi hành vi của chúng. Kết luận Lý giải: @
Câu 19:
Toán tử ':=', hay còn gọi là toán tử 'walrus', được giới thiệu từ phiên bản Python nào?
💡 Lời giải chi tiết:
Toán tử 'assignment expression' (:=) cho phép gán giá trị cho một biến ngay bên trong một biểu thức và được thêm vào từ Python 3.8. Kết luận Lý giải: Python 3.8
Câu 20:
Từ khóa nào được sử dụng bên trong một hàm để biến hàm đó thành một 'generator'?
💡 Lời giải chi tiết:
Khi một hàm chứa từ khóa 'yield', nó sẽ trả về một đối tượng 'generator' cho phép tạm dừng và tiếp tục thực thi thay vì trả về kết quả cuối cùng rồi kết thúc. Kết luận Lý giải: yield
Câu 21:
Cơ chế chính được CPython sử dụng để quản lý bộ nhớ và thu hồi các đối tượng không còn dùng đến là gì?
💡 Lời giải chi tiết:
CPython chủ yếu dựa vào việc đếm số lượng tham chiếu đến một đối tượng để tự động giải phóng nó khi số tham chiếu giảm về 0. Kết luận Lý giải: Reference Counting (Đếm tham chiếu)
Câu 22:
Phương thức '__str__' của một lớp trong Python có mục đích chính là gì?
💡 Lời giải chi tiết:
Phương thức '__str__' được gọi bởi hàm 'print()' hoặc 'str()' để trả về một chuỗi văn bản mô tả nội dung của đối tượng đó. Kết luận Lý giải: Định nghĩa biểu diễn chuỗi 'thân thiện với người dùng' cho một đối tượng
Câu 23:
Trong kế thừa, hàm 'super()' được sử dụng để làm gì?
💡 Lời giải chi tiết:
Hàm 'super()' cung cấp một cách an toàn để truy cập và gọi các phương thức hoặc hàm khởi tạo của lớp cha từ bên trong lớp con. Kết luận Lý giải: Gọi các phương thức từ lớp cha (parent class) trong lớp con
Câu 24:
Kết quả của 'print(bool([]))' là gì?
💡 Lời giải chi tiết:
Trong Python, các tập hợp rỗng (như danh sách rỗng '[]', tập hợp rỗng, chuỗi rỗng) luôn được đánh giá là giá trị False về mặt logic. Kết luận Lý giải: False
Câu 25:
Hàm 'map(str, [1, 2, 3])' sẽ trả về kết quả thuộc loại nào?
💡 Lời giải chi tiết:
Hàm 'map()' trả về một đối tượng kiểu trình lặp (iterator) trong Python 3 để tiết kiệm bộ nhớ, cần chuyển đổi sang danh sách nếu muốn xem kết quả trực tiếp. Kết luận Lý giải: Một đối tượng trình lặp (map object)