menu_book LESSON MODE

Chapter 4 — Nhập Dữ Liệu Từ Người Dùng

calendar_today Đăng 27 May 2026
Chapter 4 — Nhập Dữ Liệu Từ Người Dùng
school

NOW LEARNING

Chapter 4 — Nhập Dữ Liệu Từ Người Dùng

⌨️
Chapter 4

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()!

🎙️
Hãy nghĩ đến chiếc máy ATM: Máy hiển thị "Vui lòng nhập mã PIN" → bạn gõ số → máy xử lý và trả kết quả. Hàm input() hoạt động đúng như vậy trong Python!
👤
Người dùng
gõ thông tin
⌨️
input()
nhận dữ liệu
📦
Biến
lưu trữ
🖥️
Xử lý & In
kết quả
✍️

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}! 👋")
python hello.py
Bạn tên gì? Nam
Xin chào, Nam! 👋
💡 Phần chữ in nghiêng màu xanh trong ô terminal là người dùng gõ vào. Chương trình dừng lại chờ — cho đến khi người dùng nhấn Enter!
# 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}.")
python info.py
Tên của bạn: Nguyễn Thị Lan
Lớp của bạn: 8A
Trường của bạn: THCS Lê Quý Đôn
 
Xin chào Nguyễn Thị Lan!
Bạn học lớp 8A, trường THCS Lê Quý Đôn.
⚠️

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
🚨
Lỗi TypeError — Sai kiểu dữ liệu! Không thể cộng chữ "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:

int()
Chuyển thành số nguyên. Dùng cho tuổi, số lượng…
int("13") → 13
float()
Chuyển thành số thập phân. Dùng cho điểm, chiều cao…
float("9.5") → 9.5
str()
Chuyển thành chuỗi chữ. Dùng khi muốn ghép số vào câu.
str(100) → "100"
# 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)}")
python convert.py
Bạn bao nhiêu tuổi? 13
Điểm trung bình của bạn: 8.7
Sau 5 năm bạn sẽ 18 tuổi
Điểm làm tròn: 9
🧠
Mẹo ghi nhớ! Luôn đặt câu hỏi: "Dữ liệu này dùng để tính toán không?" → Có → dùng int() hoặc float(). Chỉ lưu chữ thôi (tên, địa chỉ) → giữ nguyên là String.
🚀 Dự án nhỏ 1

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}")
python bmi.py
=== TÍNH CHỈ SỐ BMI ===
(BMI = cân nặng / chiều cao²)
 
Tên của bạn: Nam
Cân nặng (kg): 45
Chiều cao (m): 1.55
 
--- Kết quả cho Nam ---
Cân nặng : 45.0 kg
Chiều cao: 1.55 m
Chỉ số BMI: 18.7
💡
Chú ý cú pháp {bmi:.1f} Trong f-string, :.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!
🚀 Dự án nhỏ 2

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}")
python interview.py
Chào mừng đến với Máy Phỏng Vấn! 🎤
 
1. Tên bạn là gì? Minh
2. Bạn bao nhiêu tuổi? 13
3. Môn học yêu thích của bạn? Lập trình
4. Ước mơ của bạn là gì? Làm kỹ sư phần mềm
 
****************************************
  XIN CHÀO MINH!
****************************************
  Bạn 13 tuổi, yêu thích môn Lập trình.
  Ước mơ: Làm kỹ sư phần mềm
  Năm 2029, bạn sẽ trưởng thành! 🎓
****************************************

🧩 Kiểm tra nhanh!

Bạn đã hiểu rõ Chapter 4 chưa?

1️⃣ input() luôn trả về kiểu dữ liệu gì?
→ str (String)
2️⃣ Dùng hàm nào để chuyển "13" thành số nguyên 13?
→ int("13")
3️⃣ Nhận điểm số thập phân từ người dùng, viết như thế nào?
→ float(input("Điểm: "))
4️⃣ Chương trình làm gì khi gặp lệnh input()?
→ Dừng lại chờ người dùng nhập
Tiến độ: Chapter 4/8
⌨️

NEXT STEP

Tiếp theo nên học gì

route