Câu hỏi: PRP201c - Phần 1: Nền tảng lập trình Python
40 câu trắc nghiệm kèm lời giải của môn PRP201c - Lập trình Python, xếp theo thứ tự nhập vào ngân hàng. Trang 2/2 — câu 21–40.
Danh sách câu hỏi
istr = 0
try:
istr = int(astr)
except:
istr = -1What will the value be for istr after this code executes?
Đáp án đúng: "<class float> ". Hàm type() trả về kiểu (class) của đối tượng; số 3.2 có dấu chấm thập phân nên là số thực dấu phẩy động (floating-point), kiểu float, và Python 3 hiển thị kiểu dưới dạng <class 'float'>, phương án chỉ lược bỏ dấu nháy quanh tên kiểu. "<class int> " sai vì int là kiểu số nguyên, chỉ dành cho literal không có phần thập phân như 3; muốn ra int phải ép int(3.2), khi đó còn 3. "<class str> " sai vì 3.2 không đặt trong dấu nháy; chỉ '3.2' mới là chuỗi. "<class bool> " sai vì bool chỉ có hai giá trị True và False, dù 3.2 được coi là "truthy" khi đặt trong điều kiện if thì kiểu của nó vẫn là float.
Đá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 đó.
isinstance()repr()diff()map()