Trả lời nhanh
Đáp án đúng là B. input. Trong Python, hàm input() dừng chương trình, chờ người dùng gõ dữ liệu từ bàn phím và nhấn Enter, rồi trả về dữ liệu đó dưới dạng xâu kí tự. print dùng để đưa dữ liệu ra màn hình; “nhap” và “enter” không phải lệnh có sẵn của Python.
Đề bài
Câu lệnh nào dùng để đưa dữ liệu từ bàn phím vào (nhập dữ liệu) trong ngôn ngữ lập trình Python?
- A. print
- B. input
- C. nhap
- D. enter
Đáp án: B. input
Vì sao chọn input?
Một chương trình đơn giản thường có ba phần: nhập dữ liệu → xử lí → xuất kết quả. Phần nhập dữ liệu từ bàn phím trong Python do hàm input() đảm nhận. Khi gặp lệnh này, chương trình tạm dừng, hiện dòng nhắc (nếu có) và đợi em gõ.
ten = input("Nhập tên của em: ")
print("Chào", ten)
Chạy chương trình, gõ Lan rồi nhấn Enter, màn hình hiện Chào Lan. Dòng chữ trong ngoặc của input() chỉ là lời nhắc, không được lưu vào biến.
Giải thích từng phương án sai
| Phương án | Vì sao sai |
|---|---|
| A. print | Là hàm xuất dữ liệu ra màn hình, làm việc theo chiều ngược lại với input. |
| C. nhap | Chỉ là từ tiếng Việt không dấu. Python không có hàm nào tên nhap; viết nhap() sẽ báo lỗi NameError (trừ khi em tự định nghĩa hàm đó). |
| D. enter | Enter là phím kết thúc việc gõ dữ liệu, không phải câu lệnh. Python không có hàm enter() có sẵn. |
Hai phương án C và D là “bẫy dịch nghĩa”: nghe có vẻ hợp lí với chữ “nhập”, nhưng câu lệnh phải đúng tên mà ngôn ngữ lập trình quy định.
Giải thích chi tiết: input() luôn trả về xâu
Đây là điểm các bài kiểm tra rất hay khai thác. Dù em gõ 15, giá trị nhận được vẫn là xâu "15", chưa phải số. Muốn tính toán, em phải chuyển kiểu:
a = int(input("Nhập số nguyên a: "))
b = float(input("Nhập số thực b: "))
print("Tổng:", a + b)
Nếu viết a = input() rồi a + 1, Python báo lỗi TypeError vì không cộng được xâu với số. Còn input() + input() với hai lần gõ 2 và 3 cho kết quả "23" (nối xâu), không phải 5.
Để nhập nhiều số trên một dòng, có thể dùng: x, y = map(int, input().split()). Lệnh split() tách xâu theo dấu cách, map(int, …) đổi từng phần thành số nguyên.
Kiến thức cần nhớ: lệnh nhập – xuất trong Python
- Nhập:
biến = input("lời nhắc"). Kết quả luôn có kiểustr. - Chuyển kiểu:
int()sang số nguyên,float()sang số thực,str()sang xâu. - Xuất:
print(giá_trị_1, giá_trị_2, …); các giá trị mặc định cách nhau một dấu cách. - Phân biệt chữ hoa, chữ thường:
Input()hayINPUT()đều sai. - So sánh với Pascal (chương trình cũ): nhập bằng
read/readln, xuất bằngwrite/writeln.
Mẹo nhớ: “in” trong input nghĩa là “vào” – dữ liệu đi vào máy; còn print là “in ra”. Em có thể xem thêm câu hỏi ngược lại tại Đưa dữ liệu ra màn hình dùng thủ tục nào?.
Lỗi sai thường gặp
- Quên chuyển kiểu sau
input()nên phép cộng thành nối xâu. - Nhập số thực như
2.5nhưng lại dùngint(input()), gây lỗiValueError. - Nghĩ rằng lời nhắc trong
input("…")được lưu vào biến.
Câu hỏi luyện tập tương tự
Câu 1. Sau lệnh x = input(), người dùng gõ 7. Kiểu dữ liệu của x là gì?
A. int B. float C. str D. bool
Đáp án: C. Mọi dữ liệu nhận từ input() đều là xâu.
Câu 2. Lệnh nào nhập một số nguyên n từ bàn phím đúng cách?
A. n = input(int) B. n = int(input()) C. int n = input() D. n = print(input())
Đáp án: B. Lấy xâu từ input() rồi đổi sang số nguyên bằng int().
Câu 3. Người dùng lần lượt gõ 4 và 5 cho chương trình a = input(); b = input(); print(a + b). Kết quả là gì?
A. 9 B. 45 C. 4 5 D. Báo lỗi
Đáp án: B. a và b là xâu nên phép + nối thành “45”.
Câu hỏi thường gặp
Hàm input() trong Python trả về kiểu dữ liệu gì?
Luôn trả về xâu kí tự (str), kể cả khi người dùng gõ số. Muốn tính toán cần chuyển kiểu bằng int() hoặc float().
Làm sao nhập hai số trên cùng một dòng trong Python?
Dùng a, b = map(int, input().split()); split() tách xâu theo dấu cách, map(int, …) đổi từng phần sang số nguyên.
Lệnh nhập dữ liệu trong Pascal là gì?
Trong Pascal dùng thủ tục read hoặc readln; readln đọc xong sẽ xuống dòng.
Dòng chữ trong ngoặc của input() có được lưu vào biến không?
Không. Đó chỉ là lời nhắc hiển thị cho người dùng; biến chỉ nhận phần dữ liệu người dùng gõ vào.