Câu hỏi: PRP201c Lập trình Python – Bộ ôn tập thi lại số 1
46 câu trắc nghiệm kèm lời giải của môn PRP201c - Lập trình Python, xếp đúng thứ tự trong đề. Trang 2/3 — câu 21–40.
Danh sách câu hỏi
replaceString()repl()switch()replace()Đáp án đúng: "[]". Cặp ngoặc vuông rỗng tạo một list (danh sách) rỗng, ví dụ friends = [], sau đó có thể thêm phần tử bằng friends.append('Joe'); cách viết tương đương là gọi hàm list(). Phương án "{}" tạo một dict (từ điển) rỗng chứ không phải list, và cũng không phải set rỗng, vì set rỗng phải viết set(). Phương án "()" tạo một tuple rỗng; tuple giống list ở chỗ giữ thứ tự phần tử nhưng là kiểu bất biến (immutable), không append được. Phương án "None" là giá trị đặc biệt biểu thị không có giá trị, thuộc kiểu NoneType; biến bằng None không phải list và gọi append trên nó sẽ ném AttributeError. Có thể tự kiểm bằng type([]), kết quả là lớp list.
SyntaxErrorIndexErrorFileNotFoundErrorNameErrorĐáp án đúng: "A built-in function". Trong biểu thức type(32), type được gọi như một hàm có sẵn (built-in function): Python cung cấp sẵn, không cần import, nó nhận đối tượng 32 và trả về kiểu của nó, in ra <class 'int'>. Dạng tên, ngoặc tròn, đối số chính là một lời gọi hàm. "A variable" sai vì type không phải tên do người lập trình đặt ra để chứa dữ liệu; về kỹ thuật vẫn gán đè được nhưng việc đó nên tránh. "keyword" sai vì từ khoá là các từ dành riêng như if, def, while, không gán được và không gọi được; type không nằm trong danh sách đó. "A data type" là chỗ dễ phân vân: trong Python 3, type về bản chất là một lớp, kiểu của mọi kiểu, nhưng trong biểu thức này nó được dùng để hỏi kiểu của 32; kiểu dữ liệu ở đây là int, còn type đóng vai trò hàm có sẵn trả lời câu hỏi đó.
socket.sendto(address, data)socket.address()socket.sendto(data, address)socket.dataĐáp án đúng: "CREATE TABLE people; ". Câu lệnh tạo bảng mới trong SQL bắt đầu bằng hai từ khoá CREATE TABLE rồi tới tên bảng; trong thực tế còn kèm danh sách cột trong ngoặc, ví dụ CREATE TABLE people (name TEXT, email TEXT), và SQLite đòi ít nhất một cột mới chịu chạy. Dù viết rút gọn, đây là lựa chọn duy nhất dùng đúng cặp từ khoá tạo bảng. Phương án "MAKE people;" sai vì SQL không có từ khoá MAKE. Phương án "MAKE DATASET people;" cũng không tồn tại; dataset chỉ là khái niệm chung về tập dữ liệu chứ không phải lệnh SQL. Phương án "CREATE people; " thiếu từ chỉ loại đối tượng: sau CREATE phải nói rõ tạo gì, như TABLE, INDEX hay VIEW, nên câu này lỗi cú pháp.
Đáp án đúng: "DELETE". Lệnh DELETE FROM xoá các dòng dữ liệu khỏi bảng, thường kèm WHERE để chọn dòng cần xoá, ví dụ DELETE FROM Users WHERE email = 'ted@umich.edu'; bảng và cấu trúc cột vẫn còn nguyên. Nếu thiếu WHERE thì mọi dòng bị xoá nhưng bảng vẫn tồn tại. Phương án "REMOVE" không phải lệnh SQL. Phương án "COLLAPSE" cũng không phải lệnh SQL và không mang nghĩa gì trong ngôn ngữ truy vấn. Phương án "DROP" là lệnh có thật nhưng thuộc nhóm định nghĩa cấu trúc: DROP TABLE xoá luôn cả bảng, gồm cấu trúc lẫn toàn bộ dữ liệu, chứ không phải xoá dữ liệu bên trong một bảng vẫn còn đó; câu hỏi nói tới việc xoá dữ liệu khỏi bảng nên DELETE mới đúng.