💪 Bài Tập Cơ Bản - Làm quen với Python
thông tin
Những bài tập đầu tiên để làm quen với Python - giống như tập thể dục buổi sáng cho lập trình viên!
🎯 Mục tiêu
Sau bài này bạn sẽ:
- ✅ Thực hành viết code Python cơ bản
- ✅ Làm quen với biến và kiểu dữ liệu
- ✅ Sử dụng input/output
- ✅ Thực hiện các phép tính đơn giản
- ✅ Tự tin với syntax Python
🏋️ Bài Tập Khởi Động
Bài 1: Chào hỏi thân thiện 👋
Yêu cầu: Viết chương trình hỏi tên người dùng và chào họ.
# 💡 Hướng dẫn
# - Dùng input() để nhận tên
# - Dùng print() để chào hỏi
# - Kết hợp chuỗi với +
# ✍️ Viết code của bạn ở đây:
🔍 Xem đáp án
# Giải pháp 1: Cơ bản
user_name = input("Tên bạn là gì? ")
print("Xin chào " + user_name + "!")
# Giải pháp 2: Dùng f-string (khuyến nghị)
user_name = input("Tên bạn là gì? ")
print(f"Xin chào {user_name}!")
# Giải pháp 3: Thêm phần thân thiện
user_name = input("Tên bạn là gì? ")
print(f"Xin chào {user_name}! Rất vui được gặp bạn! 😊")
Bài 2: Máy tính tuổi 🎂
Yêu cầu: Hỏi năm sinh và tính tuổi hiện tại.
# 💡 Hướng dẫn
# - Lấy năm sinh từ người dùng
# - Tính tuổi = năm hiện tại - năm sinh
# - Nhớ chuyển string thành int
# ✍️ Viết code của bạn ở đây:
🔍 Xem đáp án
# Giải pháp 1: Đơn giản
birth_year = int(input("Bạn sinh năm nào? "))
age = 2024 - birth_year
print(f"Bạn {age} tuổi!")
# Giải pháp 2: Tự động lấy năm hiện tại
import datetime
birth_year = int(input("Bạn sinh năm nào? "))
current_year = datetime.datetime.now().year
age = current_year - birth_year
print(f"Bạn {age} tuổi!")
# Giải pháp 3: Có kiểm tra
birth_year = int(input("Bạn sinh năm nào? "))
if birth_year > 2024:
print("Bạn chưa ra đời à? 😄")
else:
age = 2024 - birth_year
print(f"Bạn {age} tuổi!")
Bài 3: Chuyển đổi nhiệt độ 🌡️
Yêu cầu: Chuyển đổi từ độ C sang độ F.
# 💡 Hướng dẫn
# - Công thức: F = C * 9/5 + 32
# - Nhận nhiệt độ C từ người dùng
# - Tính và hiển thị kết quả F
# ✍️ Viết code của bạn ở đây:
🔍 Xem đáp án
# Giải pháp 1: Cơ bản
celsius = float(input("Nhập nhiệt độ (°C): "))
fahrenheit = celsius * 9/5 + 32
print(f"{celsius}°C = {fahrenheit}°F")
# Giải pháp 2: Làm tròn kết quả
celsius = float(input("Nhập nhiệt độ (°C): "))
fahrenheit = round(celsius * 9/5 + 32, 1)
print(f"{celsius}°C = {fahrenheit}°F")
# Giải pháp 3: Thêm mô tả
celsius = float(input("Nhập nhiệt độ (°C): "))
fahrenheit = round(celsius * 9/5 + 32, 1)
print(f"🌡️ {celsius}°C = {fahrenheit}°F")
# Thêm mô tả thời tiết
if celsius < 0:
print("🥶 Trời lạnh quá!")
elif celsius > 35:
print("🥵 Trời nóng quá!")
else:
print("😊 Thời tiết dễ chịu!")
🧮 Bài Tập Toán Học
Bài 4: Tính diện tích hình chữ nhật 📐
Yêu cầu: Tính diện tích và chu vi hình chữ nhật.
# 💡 Hướng dẫn
# - Nhận chiều dài và chiều rộng
# - Diện tích = dài × rộng
# - Chu vi = 2 × (dài + rộng)
# ✍️ Viết code của bạn ở đây:
🔍 Xem đáp án
# Giải pháp hoàn chỉnh
print("📐 TÍNH DIỆN TÍCH HÌNH CHỮ NHẬT")
print("=" * 35)
length = float(input("Nhập chiều dài (m): "))
width = float(input("Nhập chiều rộng (m): "))
area = length * width
perimeter = 2 * (length + width)
print(f"\n📊 Kết quả:")
print(f" 📏 Diện tích: {area} m²")
print(f" 🔄 Chu vi: {perimeter} m")
# Thêm phân loại kích thước
if area < 10:
print(" 📦 Kích thước nhỏ")
elif area < 50:
print(" 🏠 Kích thước trung bình")
else:
print(" 🏢 Kích thước lớn")
Bài 5: Máy tính tip nhà hàng 💰
Yêu cầu: Tính tiền tip và tổng tiền phải trả.
# 💡 Hướng dẫn
# - Nhận tổng hóa đơn
# - Nhận % tip (thường 10-20%)
# - Tính tiền tip và tổng cộng
# ✍️ Viết code của bạn ở đây:
🔍 Xem đáp án
# Giải pháp với nhiều tùy chọn
print("💰 MÁY TÍNH TIP NHÀ HÀNG")
print("=" * 30)
total_bill = float(input("💳 Tổng hóa đơn: "))
print("\n📋 Chọn mức tip:")
print(" 1. 10% - Dịch vụ bình thường")
print(" 2. 15% - Dịch vụ tốt")
print(" 3. 20% - Dịch vụ xuất sắc")
print(" 4. Tự nhập")
choice = input("👉 Chọn (1-4): ")
if choice == "1":
tip_percentage = 10
elif choice == "2":
tip_percentage = 15
elif choice == "3":
tip_percentage = 20
else:
tip_percentage = float(input("Nhập % tip: "))
tip_amount = total_bill * tip_percentage / 100
total_amount = total_bill + tip_amount
print(f"\n📊 Chi tiết thanh toán:")
print(f" 💳 Hóa đơn: {total_bill:,.0f}đ")
print(f" 💝 Tip ({tip_percentage}%): {tip_amount:,.0f}đ")
print(f" 💰 Tổng cộng: {total_amount:,.0f}đ")
🎮 Bài Tập Tư Duy
Bài 6: Phân loại điểm số 📊
Yêu cầu: Nhận điểm và phân loại học lực.
# 💡 Hướng dẫn
# - Nhận điểm từ 0-10
# - Phân loại: Xuất sắc (9-10), Giỏi (8-8.9), Khá (7-7.9),
# Trung bình (5-6.9), Yếu (<5)
# ✍️ Viết code của bạn ở đây:
🔍 Xem đáp án
# Giải pháp với emoji và màu sắc
print("📊 PHÂN LOẠI HỌC LỰC")
print("=" * 25)
score = float(input("Nhập điểm (0-10): "))
# Kiểm tra điểm hợp lệ
if score < 0 or score > 10:
print("❌ Điểm không hợp lệ!")
else:
if score >= 9:
print(f"🏆 Xuất sắc! Điểm {score} thật tuyệt vời!")
elif score >= 8:
print(f"🌟 Giỏi! Điểm {score} rất tốt!")
elif score >= 7:
print(f"👍 Khá! Điểm {score} ổn đấy!")
elif score >= 5:
print(f"📚 Trung bình. Điểm {score}, cần cố gắng thêm!")
else:
print(f"💪 Yếu. Điểm {score}, đừng bỏ cuộc nhé!")
# Thêm lời khuyên
if score < 8:
print("💡 Lời khuyên: Hãy ôn tập thêm và không ngừng cố gắng!")
Bài 7: Kiểm tra số chẵn lẻ 🔢
Yêu cầu: Kiểm tra số người dùng nhập là chẵn hay lẻ.
# 💡 Hướng dẫn
# - Dùng phép chia lấy dư (%)
# - Số chẵn: n % 2 == 0
# - Số lẻ: n % 2 == 1
# ✍️ Viết code của bạn ở đây:
🔍 Xem đáp án
# Giải pháp với nhiều số
print("🔢 KIỂM TRA SỐ CHẴN LẺ")
print("=" * 30)
while True:
try:
number = int(input("Nhập một số nguyên (0 để thoát): "))
if number == 0:
print("👋 Tạm biệt!")
break
if number % 2 == 0:
print(f"✅ Số {number} là số CHẴN")
else:
print(f"❌ Số {number} là số LẺ")
# Thêm thông tin bổ sung
if number > 0:
print(f" 📈 Đây là số dương")
else:
print(f" 📉 Đây là số âm")
print("-" * 20)
except ValueError:
print("⚠️ Vui lòng nhập số nguyên!")
Bài 8: Tính số ngày trong tháng 📅
Yêu cầu: Nhận tháng và năm, tính số ngày trong tháng đó.
# 💡 Hướng dẫn
# - Tháng 1,3,5,7,8,10,12: 31 ngày
# - Tháng 4,6,9,11: 30 ngày
# - Tháng 2: 28 ngày (29 nếu năm nhuận)
# ✍️ Viết code của bạn ở đây:
🔍 Xem đáp án
print("📅 TÍNH SỐ NGÀY TRONG THÁNG")
print("=" * 35)
month = int(input("Nhập tháng (1-12): "))
year = int(input("Nhập năm: "))
# Kiểm tra tháng hợp lệ
if month < 1 or month > 12:
print("❌ Tháng không hợp lệ!")
else:
# Tháng có 31 ngày
if month in [1, 3, 5, 7, 8, 10, 12]:
days_count = 31
# Tháng có 30 ngày
elif month in [4, 6, 9, 11]:
days_count = 30
# Tháng 2
else:
# Kiểm tra năm nhuận
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
days_count = 29
is_leap_year = True
else:
days_count = 28
is_leap_year = False
# Tên tháng
month_names = [
"", "Một", "Hai", "Ba", "Tư", "Năm", "Sáu",
"Bảy", "Tám", "Chín", "Mười", "Mười một", "Mười hai"
]
print(f"\n📊 Kết quả:")
print(f" 📅 Tháng {month_names[month]} năm {year}")
print(f" 🗓️ Có {days_count} ngày")
if month == 2:
if is_leap_year:
print(f" 🌟 {year} là năm nhuận!")
else:
print(f" 📝 {year} không phải năm nhuận")
🎯 Bài Tập Tổng Hợp
Bài 9: Máy tính BMI 🏃♂️
Yêu cầu: Tính chỉ số BMI và phân loại sức khỏe.
# 💡 Hướng dẫn
# - BMI = cân nặng (kg) / (chiều cao (m))²
# - Phân loại: Gầy (<18.5), Bình thường (18.5-24.9),
# Thừa cân (25-29.9), Béo phì (≥30)
# ✍️ Viết code của bạn ở đây:
🔍 Xem đáp án
print("🏃♂️ TÍNH CHỈ SỐ BMI")
print("=" * 25)
print("📝 Nhập thông tin của bạn:")
weight = float(input("⚖️ Cân nặng (kg): "))
height_cm = float(input("📏 Chiều cao (cm): "))
# Chuyển cm thành m
height_m = height_cm / 100
# Tính BMI
bmi = weight / (height_m ** 2)
print(f"\n📊 Kết quả:")
print(f" 📏 Chiều cao: {height_cm} cm")
print(f" ⚖️ Cân nặng: {weight} kg")
print(f" 📈 BMI: {bmi:.1f}")
# Phân loại
if bmi < 18.5:
print(f" 🥺 Gầy - Cần tăng cân")
advice = "Hãy ăn uống đủ chất và tập thể dục!"
elif bmi < 25:
print(f" 😊 Bình thường - Tuyệt vời!")
advice = "Hãy duy trì lối sống lành mạnh!"
elif bmi < 30:
print(f" 😐 Thừa cân - Cần chú ý")
advice = "Hãy ăn ít hơn và vận động nhiều hơn!"
else:
print(f" 😰 Béo phì - Cần giảm cân")
advice = "Hãy tham khảo ý kiến bác sĩ và có chế độ lành mạnh!"
print(f" 💡 Lời khuyên: {advice}")