Nhập dữ liệu với input()

Bài 6/6 · khoảng 7 phút đọc

Cho đến giờ, chương trình của ta luôn in ra cùng một kết quả. Để chương trình tương tác với người dùng, ta dùng hàm input(): nó chờ người dùng gõ một dòng rồi trả về dòng đó.

Python
print("Bạn tên là gì?")
ten = input()
print("Chào", ten)

Trên PyKid, dữ liệu gõ vào ô Dữ liệu nhập ở dưới ví dụ (mỗi dòng cho một lần gọi input()). Hãy thử đổi tên.

Có thể ghi lời nhắc ngay trong input:

Python
ten = input("Nhập tên của bạn: ")
print("Xin chào", ten)

input() luôn trả về chuỗi

Dù người dùng gõ 15, Python nhận được chuỗi "15". Muốn tính toán phải đổi kiểu:

Python
tuoi = int(input("Bạn bao nhiêu tuổi? "))
print("Sang năm bạn", tuoi + 1, "tuổi")

Nếu quên int(...), phép tuoi + 1 sẽ lỗi vì cộng chuỗi với số.

Một chương trình hoàn chỉnh

Python
dai = int(input("Chiều dài: "))
rong = int(input("Chiều rộng: "))
print("Chu vi:", (dai + rong) * 2)
print("Diện tích:", dai * rong)

Mô hình quen thuộc của rất nhiều chương trình: nhập → xử lý → xuất.

Ghi nhớ: input() nhận một dòng từ người dùng và luôn cho ra chuỗi. Dùng int(input()) hoặc float(input()) để nhận số.

Vì sao `x = input()` rồi `print(x + 1)` bị lỗi?

Vì x là chuỗi, mà chuỗi không cộng được với số 1. Cần x = int(input()).