Skip to content

⌨️ 3.1 Lệnh input()

📖 Giới thiệu

Lệnh input() là cách để chương trình Python "nghe" người dùng nói. Đây là cầu nối giữa chương trình và người sử dụng, giúp tạo ra các ứng dụng tương tác thú vị.

Mục tiêu bài học:

  • Hiểu cách sử dụng lệnh input()
  • Biết cách nhận dữ liệu từ người dùng
  • Xử lý và sử dụng dữ liệu nhập vào

🔧 Cú pháp

Cú pháp cơ bản:

python
# Cú pháp tổng quát
bien_luu_tru = input(thong_bao_hien_thi)

# Ví dụ cụ thể
ten = input("Nhập tên của bạn: ")

Các cách sử dụng:

python
# 1. Không có thông báo
du_lieu = input()

# 2. Có thông báo  
ten = input("Tên bạn là gì? ")

# 3. Với thông báo nhiều dòng
tuoi = input("Bạn bao nhiêu tuổi?\n>>> ")

🔬 Phân tích & Giải thích chi tiết

1. 🔍 input() hoạt động như thế nào?

Quy trình hoạt động:

  1. Python hiển thị thông báo (nếu có)
  2. Chương trình dừng lại, đợi người dùng nhập
  3. Người dùng gõ và nhấn Enter
  4. Python lưu dữ liệu vào biến dưới dạng string

Điều quan trọng: input() luôn trả về string (chuỗi), dù bạn nhập số!

2. 📝 Xử lý dữ liệu nhập vào

python
# Nhập số nguyên
tuoi_str = input("Tuổi: ")        # Nhận string
tuoi_int = int(tuoi_str)          # Chuyển thành số

# Viết gọn
tuoi = int(input("Tuổi: "))

# Nhập số thực
chieu_cao = float(input("Chiều cao (m): "))

# Nhập nhiều giá trị cùng lúc
ho_ten = input("Họ và tên: ").split()  # Tách thành list

3. 🛡️ Mẹo sử dụng input()

python
# 1. Thông báo rõ ràng
email = input("Nhập email của bạn: ")

# 2. Có ví dụ mẫu
sdt = input("Số điện thoại (VD: 0123456789): ")

# 3. Nhập nhiều thông tin
ten = input("Tên: ")
tuoi = int(input("Tuổi: "))
chieu_cao = float(input("Chiều cao (m): "))

## 💻 Ví dụ minh họa

### Ví dụ 1: Chương trình chào hỏi đơn giản

```python
# Chương trình làm quen
print("🤖 Chào bạn! Tôi là chatbot Python")

# Nhập thông tin cá nhân
ten = input("👤 Tên bạn là gì? ")
tuoi = int(input("🎂 Bạn bao nhiêu tuổi? "))
thanh_pho = input("🏙️ Bạn sống ở đâu? ")

# Xử lý và phản hồi
print(f"\n🎉 Rất vui được gặp bạn, {ten}!")
print(f"✨ {tuoi} tuổi à? Bạn còn trẻ lắm!")
print(f"🌍 {thanh_pho} là một nơi tuyệt vời!")

# Tính năm sinh
nam_hien_tai = 2024
nam_sinh = nam_hien_tai - tuoi
print(f"🗓️ Bạn sinh năm {nam_sinh} phải không?")

Kết quả chạy:

🤖 Chào bạn! Tôi là chatbot Python
👤 Tên bạn là gì? Minh
🎂 Bạn bao nhiêu tuổi? 20
🏙️ Bạn sống ở đâu? Hà Nội

🎉 Rất vui được gặp bạn, Minh!
✨ 20 tuổi à? Bạn còn trẻ lắm!
🌍 Hà Nội là một nơi tuyệt vời!
🗓️ Bạn sinh năm 2004 phải không?

Ví dụ 2: Máy tính BMI (Chỉ số khối cơ thể)

python
# Máy tính BMI đơn giản
print("📊 TÍNH CHỈ SỐ BMI")
print("=" * 20)

# Nhập thông tin
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): "))

# Tính BMI
bmi = can_nang / (chieu_cao ** 2)

# Đánh giá BMI
if bmi < 18.5:
    danh_gia = "Thiếu cân"
    emoji = "😟"
elif bmi < 25:
    danh_gia = "Bình thường"
    emoji = "😊"
elif bmi < 30:
    danh_gia = "Thừa cân"
    emoji = "😐"
else:
    danh_gia = "Béo phì"
    emoji = "😰"

# Hiển thị kết quả
print(f"\n📋 KẾT QUÁ CHO {ten.upper()}")
print(f"⚖️ BMI: {bmi:.1f}")
print(f"{emoji} Đánh giá: {danh_gia}")

# Lời khuyên
if bmi < 18.5:
    print("💡 Khuyên bạn nên tăng cân và tập thể dục")
elif bmi >= 25:
    print("💡 Khuyên bạn nên ăn ít và tập thể dục nhiều hơn")
else:
    print("💡 Bạn có cân nặng lý tưởng! Hãy duy trì!")

Kết quả chạy:

📊 TÍNH CHỈ SỐ BMI
====================
Tên của bạn: Lan
Cân nặng (kg): 55
Chiều cao (m): 1.65

📋 KẾT QUÁ CHỎ LAN
⚖️ BMI: 20.2
😊 Đánh giá: Bình thường
💡 Bạn có cân nặng lý tưởng! Hãy duy trì!

Ví dụ 3: Game đoán số

python
import random

# Game đoán số đơn giản
print("🎮 GAME ĐOÁN SỐ")
print("Tôi đang nghĩ một số từ 1 đến 100")
print("Bạn có thể đoán được không?")

# Tạo số ngẫu nhiên
so_bi_mat = random.randint(1, 100)
so_lan_doan = 0
max_lan_doan = 7

while so_lan_doan < max_lan_doan:
    # Nhập dự đoán
    try:
        du_doan = int(input(f"\nLần đoán {so_lan_doan + 1}/{max_lan_doan}: "))
        so_lan_doan += 1
        
        # Kiểm tra dự đoán
        if du_doan == so_bi_mat:
            print(f"🎉 CHÍNH XÁC! Số tôi nghĩ là {so_bi_mat}")
            print(f"👏 Bạn đoán đúng sau {so_lan_doan} lần!")
            break
        elif du_doan < so_bi_mat:
            print("📈 Số tôi nghĩ lớn hơn!")
        else:
            print("📉 Số tôi nghĩ nhỏ hơn!")
            
    except ValueError:
        print("❌ Vui lòng nhập một số!")
        continue

else:
    print(f"\n😔 Hết lượt rồi! Số tôi nghĩ là {so_bi_mat}")
    print("🔄 Chơi lại lần sau nhé!")

🏋️ Thực hành

Bài tập 1: Làm quen cơ bản

Viết chương trình nhập và hiển thị thông tin:

python
# Bài tập: Hoàn thành chương trình
print("THÔNG TIN CÁ NHÂN")

# TODO: Nhập tên, tuổi, sở thích
# TODO: Hiển thị lại thông tin đã nhập

Đáp án:

python
print("THÔNG TIN CÁ NHÂN")

ten = input("Tên: ")
tuoi = int(input("Tuổi: "))
so_thich = input("Sở thích: ")

print(f"\nXin chào {ten}!")
print(f"Bạn {tuoi} tuổi và thích {so_thich}")

Bài tập 2: Tính toán với input

Viết chương trình tính tổng hai số:

python
# TODO: Nhập hai số từ người dùng
# TODO: Tính và hiển thị tổng

Đáp án:

python
print("TÍNH TỔNG HAI SỐ")

so_a = float(input("Số thứ nhất: "))
so_b = float(input("Số thứ hai: "))

tong = so_a + so_b
print(f"{so_a} + {so_b} = {tong}")

Bài tập 3: Xử lý chuỗi

Viết chương trình phân tích tên:

python
# TODO: Nhập họ tên đầy đủ
# TODO: Tách và hiển thị họ, tên riêng
# TODO: Đếm số từ trong tên

Gợi ý: Sử dụng .split() và indexing

Đáp án:

python
ho_ten = input("Nhập họ tên đầy đủ: ")
cac_tu = ho_ten.split()

ho = cac_tu[0]
ten = cac_tu[-1]
so_tu = len(cac_tu)

print(f"Họ: {ho}")
print(f"Tên: {ten}") 
print(f"Tổng số từ: {so_tu}")

Bài tập 4: Thử thách

Tạo menu lựa chọn đơn giản:

python
# TODO: Hiển thị menu
# TODO: Nhận lựa chọn từ người dùng  
# TODO: Xử lý theo lựa chọn

Ví dụ menu:

=== MENU ===
1. Tính BMI
2. Chuyển đổi nhiệt độ
3. Thoát
Chọn (1-3):

📋 Tóm tắt

Những điều quan trọng về input():

  1. 📥 Cú pháp cơ bản:

    python
    bien = input("Thông báo: ")
  2. 🔤 Kiểu dữ liệu: input() luôn trả về string

  3. 🔄 Chuyển đổi kiểu:

    python
    so = int(input("Nhập số: "))      # String → Integer
    so_thuc = float(input("Nhập: "))  # String → Float
  4. ⚠️ Xử lý lỗi:

    python
    try:
        so = int(input("Số: "))
    except ValueError:
        print("Không phải số!")
  5. 🎯 Mẹo hay:

    • Thông báo rõ ràng và có ví dụ
    • Xử lý trường hợp nhập sai
    • Sử dụng default values

Pattern thường dùng:

python
# Pattern 1: Nhập và xử lý
du_lieu = input("Nhập: ")
ket_qua = xu_ly(du_lieu)

# Pattern 2: Nhập với kiểm tra
while True:
    try:
        so = int(input("Số: "))
        break
    except ValueError:
        print("Nhập lại!")

# Pattern 3: Menu lựa chọn  
lua_chon = input("Chọn (1-3): ")
if lua_chon == "1":
    # Xử lý lựa chọn 1

Chuẩn bị cho bài tiếp theo:

Bài tiếp theo sẽ học về 🖨️ Lệnh print() - cách hiển thị thông tin ra màn hình một cách đẹp mắt và chuyên nghiệp!


💡 Mẹo: Luôn nhớ rằng input() trả về string. Hãy chuyển đổi kiểu dữ liệu khi cần thiết!

🎮 Thực hành: Hãy thử tạo một chương trình nhỏ sử dụng input() để tương tác với người dùng!

🐍 Khóa học Python căn bản bằng tiếng Việt