Nhập Dữ Liệu
Từ Người Dùng!
Chương trình của bạn sẽ biết "hỏi han" và nhận thông tin từ người dùng — thú vị hơn nhiều rồi đấy!
Chương trình biết... hỏi người dùng!
Cho đến giờ, mọi dữ liệu trong chương trình đều do bạn tự viết vào code. Nhưng điều gì sẽ xảy ra nếu chương trình tự hỏi người dùng? Đó chính là sức mạnh của input()!
input() hoạt động đúng như vậy trong Python!
Cú pháp cơ bản của input()
Cách viết đơn giản nhất — đặt câu hỏi trong dấu nháy, gán kết quả vào biến:
# Cú pháp: bien = input("Câu hỏi hiện ra cho người dùng") ten = input("Bạn tên gì? ") print(f"Xin chào, {ten}! 👋")
# Hỏi nhiều thông tin liên tiếp ten = input("Tên của bạn: ") lop = input("Lớp của bạn: ") truong = input("Trường của bạn: ") print(f"\nXin chào {ten}!") print(f"Bạn học lớp {lop}, trường {truong}.")
Bẫy quan trọng — input() luôn trả về String!
Dù người dùng gõ số 13, Python vẫn hiểu đó là chữ "13" — không phải số! Điều này gây ra lỗi khi tính toán:
tuoi = input("Bạn bao nhiêu tuổi? ") # ❌ Lỗi! "13" + 1 không tính được! print(tuoi + 1) # TypeError: can only concatenate str (not "int") to str
"13" với số 1 — giống như bạn cộng "mười ba" + 1 trên giấy vậy! Python không biết làm thế nào.
✅ Giải pháp: Chuyển đổi kiểu dữ liệu trước khi tính toán!
Chuyển đổi kiểu dữ liệu — 3 hàm quan trọng
Python có 3 hàm chuyển đổi mà bạn sẽ dùng rất thường xuyên khi làm việc với input:
# Cách đúng: chuyển đổi ngay khi nhận input tuoi = int(input("Bạn bao nhiêu tuổi? ")) diem = float(input("Điểm trung bình của bạn: ")) # Giờ có thể tính toán bình thường! tuoi_sau_5_nam = tuoi + 5 print(f"Sau 5 năm bạn sẽ {tuoi_sau_5_nam} tuổi") print(f"Điểm làm tròn: {round(diem)}")
int() hoặc float(). Chỉ lưu chữ thôi (tên, địa chỉ) → giữ nguyên là String.
Máy tính BMI cá nhân
Kết hợp input, chuyển đổi kiểu và f-string để tạo chương trình tính chỉ số BMI:
# ============================ # MÁY TÍNH BMI CÁ NHÂN # ============================ print("=== TÍNH CHỈ SỐ BMI ===") print("(BMI = cân nặng / chiều cao²)\n") ten = input("Tên của bạn: ") can_nang = float(input("Cân nặng (kg): ")) chieu_cao = float(input("Chiều cao (m): ")) bmi = can_nang / (chieu_cao ** 2) print(f"\n--- Kết quả cho {ten} ---") print(f"Cân nặng : {can_nang} kg") print(f"Chiều cao: {chieu_cao} m") print(f"Chỉ số BMI: {bmi:.1f}")
:.1f có nghĩa là "làm tròn đến 1 chữ số thập phân". Rất tiện khi hiển thị số đẹp hơn!
Máy hỏi đáp thông minh
Tạo một chương trình trò chuyện đơn giản — hỏi nhiều câu và tổng hợp thông tin:
# Máy phỏng vấn học sinh print("Chào mừng đến với Máy Phỏng Vấn! 🎤\n") ten = input("1. Tên bạn là gì? ") tuoi = int(input("2. Bạn bao nhiêu tuổi? ")) mon_yeu = input("3. Môn học yêu thích của bạn? ") uoc_mo = input("4. Ước mơ của bạn là gì? ") print(f"\n{'*'*40}") print(f" XIN CHÀO {ten.upper()}!") print(f"{'*'*40}") print(f" Bạn {tuoi} tuổi, yêu thích môn {mon_yeu}.") print(f" Ước mơ: {uoc_mo}") print(f" Năm {2024 + (18 - tuoi)}, bạn sẽ trưởng thành! 🎓") print(f"{'*'*40}")
🧩 Kiểm tra nhanh!
Bạn đã hiểu rõ Chapter 4 chưa?
input() luôn trả về kiểu dữ liệu gì?→ str (String)
→ int("13")
→ float(input("Điểm: "))
→ Dừng lại chờ người dùng nhập