Bộ 4 - 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, quy tắc nào là bắt buộc để xác định một khối lệnh (block) như trong hàm hoặc vòng lặp?
💡 Lời giải chi tiết:
Theo quy tắc cú pháp của Python, thụt lề đồng nhất là cách duy nhất để phân định các khối lệnh thay vì dùng dấu ngoặc nhọn như các ngôn ngữ khác. Kết luận Lý giải Sử dụng thụt lề (indentation) đồng nhất cho các dòng lệnh trong khối.
Câu 2:
Điểm khác biệt cơ bản nhất về tính chất dữ liệu giữa 'list' và 'tuple' trong Python là gì?
💡 Lời giải chi tiết:
Trong Python, list là kiểu dữ liệu có thể thay đổi nội dung sau khi khởi tạo, trong khi tuple là cấu trúc dữ liệu cố định không thể chỉnh sửa. Kết luận Lý giải List có thể thay đổi (mutable) còn Tuple thì không (immutable).
Câu 3:
Kiểu dữ liệu nào sau đây KHÔNG THỂ được sử dụng làm khóa (key) trong một 'dictionary' của Python?
💡 Lời giải chi tiết:
Key của dictionary phải là đối tượng có thể băm (hashable) và không thay đổi, do đó list là kiểu dữ liệu mutable nên không hợp lệ. Kết luận Lý giải Kiểu danh sách (List).
Câu 4:
Kết quả của biểu thức 'list(range(1, 10, 2))' trong Python là gì?
💡 Lời giải chi tiết:
Hàm range(start, stop, step) tạo dãy số từ 1 đến dưới 10 với bước nhảy là 2, do đó kết quả bao gồm các số lẻ từ 1 đến 9. Kết luận Lý giải [1, 3, 5, 7, 9].
Câu 5:
Toán tử 'is' trong Python được dùng để thực hiện nhiệm vụ gì?
💡 Lời giải chi tiết:
Khác với toán tử '==' dùng để so sánh giá trị, toán tử 'is' dùng để kiểm tra định danh (identity) của đối tượng trong bộ nhớ. Kết luận Lý giải Kiểm tra xem hai biến có cùng trỏ đến một đối tượng trong bộ nhớ hay không.
Câu 6:
Đặc điểm chính của hàm 'lambda' trong ngôn ngữ lập trình Python là gì?
💡 Lời giải chi tiết:
Lambda là các hàm không tên được định nghĩa bằng từ khóa lambda, thường dùng cho các biểu thức ngắn gọn và logic đơn giản. Kết luận Lý giải Là hàm ẩn danh có thể viết trên một dòng lệnh.
Câu 7:
Trong cấu trúc 'try...except...finally', khối lệnh nào sẽ luôn được thực thi bất kể có ngoại lệ 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 thao tác dọn dẹp tài nguyên và sẽ luôn chạy dù mã trong try thành công hay gặp ngoại lệ. Kết luận Lý giải finally.
Câu 8:
Kiểu dữ liệu tập hợp (set) trong Python có đặc điểm cốt lõi nào sau đây?
💡 Lời giải chi tiết:
Set là một cấu trúc dữ liệu chứa các phần tử duy nhất và không duy trì thứ tự xuất hiện của chúng trong bộ nhớ. Kết luận Lý giải Các phần tử không trùng lặp và không có thứ tự.
Câu 9:
Nếu biến s có giá trị là 'Python', kết quả của thao tác cắt chuỗi 's[::-1]' là gì?
💡 Lời giải chi tiết:
Kỹ thuật slicing với bước nhảy -1 sẽ đảo ngược toàn bộ chuỗi từ ký tự cuối cùng đến ký tự đầu tiên. Kết luận Lý giải 'nohtyP'.
Câu 10:
Trong định nghĩa hàm của Python, tham số '*args' có ý nghĩa như thế nào?
💡 Lời giải chi tiết:
Cú pháp *args giúp hàm linh hoạt hơn khi chấp nhận bất kỳ số lượng tham số vị trí nào từ người gọi và gom chúng vào một tuple. Kết luận Lý giải Cho phép truyền vào một số lượng biến các đối số không định danh dưới dạng tuple.
Câu 11:
Giá trị nào sau đây sẽ được Python đánh giá là 'False' khi nằm trong biểu thức điều kiện?
💡 Lời giải chi tiết:
Trong Python, các giá trị như số 0, None, chuỗi rỗng, list rỗng, và tuple rỗng đều được coi là False về mặt logic. Kết luận Lý giải Chuỗi trống (empty string) ''.
Câu 12:
Sử dụng List Comprehension, kết quả của biểu thức '[x**2 for x in range(3)]' là gì?
💡 Lời giải chi tiết:
Biểu thức này tính bình phương cho từng giá trị x trong dãy số [0, 1, 2] được tạo ra bởi hàm range(3). Kết luận Lý giải [0, 1, 4].
Câu 13:
Từ khóa nào được sử dụng để thông báo rằng một biến bên trong hàm là biến được định nghĩa ở phạm vi toàn cục?
💡 Lời giải chi tiết:
Để gán lại hoặc sửa đổi giá trị cho một biến toàn cục từ bên trong một hàm, lập trình viên bắt buộc phải sử dụng từ khóa 'global'. Kết luận Lý giải global.
Câu 14:
Chế độ (mode) nào trong hàm 'open()' cho phép mở file để ghi thêm nội dung vào cuối mà không xóa dữ liệu cũ?
💡 Lời giải chi tiết:
Chế độ 'a' (append) mở tệp để ghi và tự động đặt con trỏ ở cuối tệp, đảm bảo dữ liệu hiện có không bị ghi đè. Kết luận Lý giải 'a'.
Câu 15:
Hàm 'map()' tích hợp sẵn trong Python có công dụng chính là gì?
💡 Lời giải chi tiết:
Hàm map nhận một đối tượng hàm và một iterable, sau đó trả về một iterator kết quả của việc áp dụng hàm đó cho từng phần tử. Kết luận Lý giải Áp dụng một hàm lên tất cả các phần tử của một iterable.
Câu 16:
Trong lập trình hướng đối tượng với Python, phương thức '__init__' đóng vai trò gì?
💡 Lời giải chi tiết:
Phương thức __init__ cho phép thiết lập các trạng thái và thuộc tính ban đầu cho đối tượng ngay khi nó được tạo ra từ lớp. Kết luận Lý giải Là hàm khởi tạo (constructor) được gọi khi một đối tượng mới của lớp được tạo ra.
Câu 17:
Toán tử nào được dùng để thực hiện phép chia lấy phần nguyên (loại bỏ phần thập phân) trong Python 3?
💡 Lời giải chi tiết:
Trong Python 3, trong khi '/' trả về kết quả số thực thì '//' thực hiện phép chia và lấy phần nguyên bằng cách làm tròn xuống. Kết luận Lý giải //.
Câu 18:
Hàm nào sau đây là cách chuẩn để kiểm tra xem một đối tượng có phải là thực thể của một lớp cụ thể hay không?
💡 Lời giải chi tiết:
Hàm isinstance(object, class) trả về True nếu đối tượng là một thực thể của lớp đó hoặc các lớp con kế thừa từ nó. Kết luận Lý giải Sử dụng hàm isinstance().
Câu 19:
Câu lệnh 'from math import sqrt' mang ý nghĩa gì trong việc quản lý không gian tên (namespace)?
💡 Lời giải chi tiết:
Cú pháp from...import giúp lập trình viên sử dụng trực tiếp tên hàm cụ thể mà không cần phải gọi thông qua tên module. Kết luận Lý giải Chỉ nhập hàm sqrt từ module math vào không gian tên hiện tại.
Câu 20:
Phương pháp định dạng chuỗi (string formatting) nào được coi là hiện đại và tối ưu nhất từ phiên bản Python 3.6 trở đi?
💡 Lời giải chi tiết:
f-strings cho phép nhúng trực tiếp biểu thức vào chuỗi bằng cú pháp f'{}' mang lại hiệu năng cao và mã nguồn dễ đọc hơn. Kết luận Lý giải f-strings (Formatted string literals).
Câu 21:
Trong Python, 'Decorator' thực chất được hiểu là gì?
💡 Lời giải chi tiết:
Decorator là một công cụ mạnh mẽ cho phép bao bọc và sửa đổi hành vi của một hàm hoặc lớp mà không cần thay đổi mã gốc. Kết luận Lý giải Là một hàm nhận một hàm khác làm đối số và trả về một hàm mới để mở rộng chức năng.
Câu 22:
Từ khóa 'yield' trong Python thường được sử dụng với mục đích gì?
💡 Lời giải chi tiết:
Từ khóa yield tạm dừng việc thực thi hàm và trả về một giá trị, đồng thời bảo toàn trạng thái để tiếp tục ở lần gọi kế tiếp. Kết luận Lý giải Biến một hàm thành một generator để trả về các giá trị một cách tuần tự (lazy evaluation).
Câu 23:
Tại sao việc sử dụng phương thức 'get()' lại được ưu tiên hơn truy cập trực tiếp bằng khóa khi làm việc với Dictionary?
💡 Lời giải chi tiết:
Khác với cách truy cập bằng ngoặc vuông, phương thức get() trả về None hoặc giá trị mặc định thay vì làm chương trình dừng lại do lỗi khi thiếu khóa. Kết luận Lý giải Tránh lỗi KeyError nếu key không tồn tại trong dictionary.
Câu 24:
Tham số 'self' xuất hiện trong các phương thức của một lớp (class) đóng vai trò gì?
💡 Lời giải chi tiết:
Mặc dù có thể đặt tên khác, 'self' là quy ước chuẩn giúp phương thức xác định được đối tượng cụ thể nào đang gọi nó để truy cập dữ liệu. Kết luận Lý giải Đại diện cho chính thực thể (instance) hiện tại của lớp đó.
Câu 25:
Hàm 'zip()' trong Python thực hiện nhiệm vụ gì khi nhận vào nhiều đối tượng iterable?
💡 Lời giải chi tiết:
Hàm zip lấy các phần tử tại cùng một vị trí chỉ số từ nhiều iterable và nhóm chúng lại thành các bộ tuple trong một iterator mới. Kết luận Lý giải Kết hợp các phần tử tương ứng của các danh sách thành các cặp tuple.