Câu hỏi: PRP201c Lập trình Python – Bộ ôn tập cuối kỳ số 1
50 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 3/3 — câu 41–50.
Danh sách câu hỏi
requests.tail('https://httpbin.org/tail')requests.put('https://httpbin.org/put', data={'key':'value'})requests.put('https://httpbin.org/tail')requests.get('https://httpbin.org/put', data={'key':'value'})Đáp án đúng: "
requests.put('https://httpbin.org/put', data={
'key':'value'
})". Thư viện requests cung cấp mỗi phương thức HTTP thành một hàm cùng tên: get, post, put, delete, head, patch, options. Dịch vụ httpbin gắn mỗi đường dẫn với đúng phương thức của nó: /put chỉ nhận yêu cầu PUT và gửi lại nội dung đã nhận, nên gọi requests.put tới /put kèm data là yêu cầu khớp cả hàm lẫn đường dẫn. "requests.tail('https://httpbin.org/tail')" sai vì HTTP không có phương thức TAIL và requests không có hàm tail, Python báo AttributeError trước khi gửi gì đi. "requests.put('https://httpbin.org/tail')" gọi đúng hàm nhưng httpbin không có đường dẫn /tail, máy chủ trả mã 404 Not Found. "
requests.get('https://httpbin.org/put', data={
'key':'value'
})" dùng GET cho đường dẫn chỉ nhận PUT nên bị trả mã 405 Method Not Allowed; ngoài ra GET thường không mang thân dữ liệu, tham số của GET nên đặt trong params.
Đáp án đúng: "print(type(x))". Hàm có sẵn type() nhận một đối tượng và trả về kiểu của nó, nên print(type(x)) với x = 5 in ra <class 'int'>, với x = 'abc' in ra <class 'str'>. Đây là cách kiểm tra kiểu nhanh khi gỡ lỗi, còn muốn kiểm một giá trị có thuộc một kiểu hay không thì dùng isinstance(x, int). "print(typeof(x))" sai vì typeof là toán tử của JavaScript; Python không có tên typeof nên báo NameError. "print(typeof x)" vẫn là cú pháp JavaScript, hai tên đứng cạnh nhau không có toán tử nên Python báo SyntaxError ngay khi đọc mã. "print(typeOf(x))" cũng không tồn tại; Python phân biệt chữ hoa chữ thường và không có hàm typeOf nào, kết quả là NameError.
Đáp án đúng: "UPDATE Users SET name='new name' WHERE ...". Cú pháp chuẩn để sửa dữ liệu là UPDATE tên bảng, rồi SET cột bằng giá trị mới, rồi WHERE điều kiện; SET liệt kê các cột cần đổi, còn WHERE giới hạn những dòng bị ảnh hưởng, thiếu WHERE thì mọi dòng trong bảng đều bị đổi. "Users->name = 'new name' WHERE ..." dùng toán tử mũi tên kiểu truy cập thành viên của C hay PHP, không phải SQL, và thiếu hẳn từ khoá UPDATE. "Users.name='new name' WHERE ..." giống phép gán thuộc tính trong Python; SQL có cho viết tên bảng chấm tên cột để chỉ một cột trong truy vấn, nhưng không có lệnh nào bắt đầu bằng phép gán như vậy. "UPDATE Users (name) VALUES ('new name') WHERE ..." trộn cú pháp của INSERT INTO vào UPDATE; VALUES chỉ dùng khi chèn dòng mới, còn UPDATE bắt buộc dùng SET.
exitbreakstopreturn