🖨️ 3.2 Lệnh print()
📖 Giới thiệu
Lệnh print() là cách để chương trình Python "nói chuyện" với bạn. Đây là công cụ hiển thị thông tin ra màn hình, giúp bạn thấy kết quả của chương trình và debug code hiệu quả.
Mục tiêu bài học:
- Thành thạo các cách sử dụng
print() - Định dạng output đẹp mắt và chuyên nghiệp
- Biết cách debug bằng print()
🔧 Cú pháp
Cú pháp cơ bản:
print(value1, value2, ..., sep=' ', end='\n')Các cách sử dụng:
# 1. In chuỗi đơn giản
print("Hello World")
# 2. In nhiều giá trị
print("Tên:", "Python", "Tuổi:", 30)
# 3. Với separator tùy chỉnh
print("A", "B", "C", sep="-")
# 4. Với ending tùy chỉnh
print("Hello", end=" ")
print("World") # In trên cùng dòng
# 5. In không có gì (dòng trống)
print()🔬 Phân tích & Giải thích chi tiết
1. 🎛️ Tham số của print()
Các tham số quan trọng:
sep (separator)
# Mặc định sep=' ' (khoảng trắng)
print("A", "B", "C") # A B C
print("A", "B", "C", sep="-") # A-B-C
print("A", "B", "C", sep="") # ABC
print("A", "B", "C", sep=" | ") # A | B | Cend (ending)
# Mặc định end='\n' (xuống dòng)
print("Dòng 1")
print("Dòng 2") # Xuống dòng
print("Cùng", end=" ")
print("dòng") # Cùng dòng
print("Loading", end="")
for i in range(3):
print(".", end="") # Loading...
print(" Done!")2. 🎨 Định dạng output đẹp mắt
Căn chỉnh văn bản:
# Căn giữa
title = "BẢNG ĐIỂM HỌC SINH"
print(title.center(30, "="))
# ====BẢNG ĐIỂM HỌC SINH====
# Tạo khung
print("+" + "-" * 28 + "+")
print("|" + " MENU CHÍNH ".center(28) + "|")
print("+" + "-" * 28 + "+")Hiển thị dữ liệu dạng bảng:
# Header
print(f"{'Tên':<10} {'Tuổi':>5} {'Điểm':>6}")
print("-" * 21)
# Data rows
print(f"{'Minh':<10} {20:>5} {8.5:>6}")
print(f"{'Lan':<10} {19:>5} {9.0:>6}")3. 🔢 In các kiểu dữ liệu khác nhau
# String
ten = "Python"
print("Ngôn ngữ:", ten)
# Numbers
tuoi = 30
diem = 9.5
print("Tuổi:", tuoi, "- Điểm:", diem)
# Boolean
la_sinh_vien = True
print("Sinh viên:", la_sinh_vien)
# List
mon_hoc = ["Toán", "Lý", "Hóa"]
print("Môn học:", mon_hoc)
# Dictionary
thong_tin = {"ten": "An", "tuoi": 20}
print("Thông tin:", thong_tin)4. 🐛 Sử dụng print() để debug
def tinh_diem_trung_binh(diem_list):
print(f"DEBUG: Input = {diem_list}") # Debug line
tong = sum(diem_list)
print(f"DEBUG: Tổng = {tong}") # Debug line
so_luong = len(diem_list)
print(f"DEBUG: Số lượng = {so_luong}") # Debug line
trung_binh = tong / so_luong
print(f"DEBUG: Kết quả = {trung_binh}") # Debug line
return trung_binh💻 Ví dụ minh họa
Ví dụ 1: In thông tin cá nhân đẹp mắt
# Chương trình hiển thị thông tin học sinh
def in_thong_tin_hoc_sinh():
# Dữ liệu học sinh
ten = "Nguyễn Văn Minh"
lop = "12A1"
truong = "THPT Nguyễn Huệ"
diem_toan = 8.5
diem_ly = 7.0
diem_hoa = 9.0
# Tính điểm trung bình
diem_tb = (diem_toan + diem_ly + diem_hoa) / 3
# In header
print("=" * 40)
print("BẢNG ĐIỂM HỌC SINH".center(40))
print("=" * 40)
# In thông tin cơ bản
print(f"Họ tên : {ten}")
print(f"Lớp : {lop}")
print(f"Trường : {truong}")
print("-" * 40)
# In điểm số
print("BẢNG ĐIỂM:")
print(f" Toán học : {diem_toan:>5.1f}")
print(f" Vật lý : {diem_ly:>5.1f}")
print(f" Hóa học : {diem_hoa:>5.1f}")
print("-" * 40)
print(f" Điểm TB : {diem_tb:>5.1f}")
# Đánh giá
if diem_tb >= 8.0:
xep_loai = "Giỏi"
emoji = "🏆"
elif diem_tb >= 6.5:
xep_loai = "Khá"
emoji = "👍"
elif diem_tb >= 5.0:
xep_loai = "Trung bình"
emoji = "📚"
else:
xep_loai = "Yếu"
emoji = "💪"
print(f" Xếp loại : {emoji} {xep_loai}")
print("=" * 40)
# Chạy chương trình
in_thong_tin_hoc_sinh()Kết quả:
========================================
BẢNG ĐIỂM HỌC SINH
========================================
Họ tên : Nguyễn Văn Minh
Lớp : 12A1
Trường : THPT Nguyễn Huệ
----------------------------------------
BẢNG ĐIỂM:
Toán học : 8.5
Vật lý : 7.0
Hóa học : 9.0
----------------------------------------
Điểm TB : 8.2
Xếp loại : 🏆 Giỏi
========================================Ví dụ 2: Progress bar đơn giản
import time
def hien_thi_progress_bar(tong_so, tieu_de="Đang xử lý"):
"""Hiển thị thanh progress bar"""
print(f"\n{tieu_de}:")
for i in range(tong_so + 1):
# Tính phần trăm
phan_tram = (i / tong_so) * 100
# Tạo thanh progress
thanh_day = int(phan_tram / 2) # Thanh dài 50 ký tự
thanh_trong = 50 - thanh_day
progress_bar = "█" * thanh_day + "░" * thanh_trong
# In progress (ghi đè dòng cũ)
print(f"\r[{progress_bar}] {phan_tram:5.1f}%", end="")
# Giả lập thời gian xử lý
time.sleep(0.1)
print("\n✅ Hoàn thành!")
# Test progress bar
hien_thi_progress_bar(20, "Đang tải dữ liệu")Ví dụ 3: Menu tương tác đẹp mắt
def hien_thi_menu():
"""Hiển thị menu chương trình"""
# Header
print("\n" + "╔" + "═" * 38 + "╗")
print("║" + " CHƯƠNG TRÌNH QUẢN LÝ HỌC SINH ".center(38) + "║")
print("╠" + "═" * 38 + "╣")
# Menu items
menu_items = [
"1. Thêm học sinh mới",
"2. Xem danh sách học sinh",
"3. Tính điểm trung bình",
"4. Tìm kiếm học sinh",
"5. Xuất báo cáo",
"0. Thoát chương trình"
]
for item in menu_items:
print(f"║ {item:<36} ║")
# Footer
print("╚" + "═" * 38 + "╝")
# Prompt
lua_chon = input("\n👉 Nhập lựa chọn của bạn: ")
return lua_chon
def xu_ly_menu():
"""Xử lý lựa chọn menu"""
while True:
lua_chon = hien_thi_menu()
if lua_chon == "1":
print("🆕 Chức năng thêm học sinh...")
elif lua_chon == "2":
print("📋 Hiển thị danh sách học sinh...")
elif lua_chon == "3":
print("🧮 Tính điểm trung bình...")
elif lua_chon == "4":
print("🔍 Tìm kiếm học sinh...")
elif lua_chon == "5":
print("📊 Xuất báo cáo...")
elif lua_chon == "0":
print("👋 Tạm biệt! Hẹn gặp lại!")
break
else:
print("❌ Lựa chọn không hợp lệ!")
input("\nNhấn Enter để tiếp tục...")
# Chạy chương trình menu
xu_ly_menu()🏋️ Thực hành
Bài tập 1: In thông tin cơ bản
Hoàn thành chương trình sau:
# TODO: Khai báo thông tin cá nhân của bạn
ten = "Tên của bạn"
tuoi = 20
thanh_pho = "Thành phố"
# TODO: In thông tin theo format đẹp
# Kết quả mong muốn:
# ==================
# THÔNG TIN CÁ NHÂN
# ==================
# Tên : [Tên của bạn]
# Tuổi : [Tuổi] tuổi
# Thành phố: [Thành phố]Đáp án:
ten = "Nguyễn Văn An"
tuoi = 20
thanh_pho = "Hà Nội"
print("=" * 18)
print("THÔNG TIN CÁ NHÂN")
print("=" * 18)
print(f"Tên : {ten}")
print(f"Tuổi : {tuoi} tuổi")
print(f"Thành phố: {thanh_pho}")Bài tập 2: Tạo bảng điểm
Viết chương trình in bảng điểm cho 3 học sinh:
# Dữ liệu học sinh
hoc_sinh = [
{"ten": "Minh", "toan": 8.5, "ly": 7.0, "hoa": 9.0},
{"ten": "Lan", "toan": 9.0, "ly": 8.5, "hoa": 8.0},
{"ten": "Hùng", "toan": 7.5, "ly": 8.0, "hoa": 7.0}
]
# TODO: In bảng điểm đẹp mắt
# Header: Tên | Toán | Lý | Hóa | TB
# Dữ liệu với căn chỉnh phù hợpĐáp án:
hoc_sinh = [
{"ten": "Minh", "toan": 8.5, "ly": 7.0, "hoa": 9.0},
{"ten": "Lan", "toan": 9.0, "ly": 8.5, "hoa": 8.0},
{"ten": "Hùng", "toan": 7.5, "ly": 8.0, "hoa": 7.0}
]
# Header
print(f"{'Tên':<8} {'Toán':>6} {'Lý':>6} {'Hóa':>6} {'TB':>6}")
print("-" * 34)
# Dữ liệu
for hs in hoc_sinh:
tb = (hs["toan"] + hs["ly"] + hs["hoa"]) / 3
print(f"{hs['ten']:<8} {hs['toan']:>6.1f} {hs['ly']:>6.1f} {hs['hoa']:>6.1f} {tb:>6.1f}")Bài tập 3: Debug với print()
Tìm lỗi trong function sau bằng print():
def chia_so(a, b):
# TODO: Thêm các lệnh print() để debug
ket_qua = a / b
return ket_qua
# Test case
print(chia_so(10, 2)) # Kết quả: 5.0
print(chia_so(10, 0)) # Lỗi! ZeroDivisionErrorĐáp án:
def chia_so(a, b):
print(f"DEBUG: Input a={a}, b={b}")
if b == 0:
print("DEBUG: Phát hiện chia cho 0!")
return None
ket_qua = a / b
print(f"DEBUG: Kết quả = {ket_qua}")
return ket_qua
# Test case
print(chia_so(10, 2)) # 5.0
print(chia_so(10, 0)) # NoneBài tập 4: Thử thách - Vẽ hình với print()
Sử dụng print() để vẽ tam giác:
*
***
*****
*******
*********Gợi ý: Sử dụng vòng lặp và khoảng trắng
Đáp án:
chieu_cao = 5
for i in range(chieu_cao):
khoang_trang = " " * (chieu_cao - i - 1)
sao = "*" * (2 * i + 1)
print(khoang_trang + sao)📋 Tóm tắt
Những điều quan trọng về print():
🎛️ Tham số chính:
pythonprint(value, sep=' ', end='\n')🎨 Định dạng đẹp:
python# Căn chỉnh print(f"{text:<10}") # Căn trái print(f"{text:>10}") # Căn phải print(f"{text:^10}") # Căn giữa # Số thập phân print(f"{number:.2f}") # 2 chữ số sau dấu phẩy🔧 Mẹo hay:
- Dùng
end=""để in cùng dòng - Dùng
sep=""để gộp các giá trị - Tạo khung và bảng để đẹp mắt
- Dùng emoji để sinh động
- Dùng
🐛 Debug hiệu quả:
pythonprint(f"DEBUG: Variable = {variable}")📊 Pattern thường dùng:
python# Progress indicator print("Loading", end="") for i in range(3): print(".", end="") print(" Done!") # Table format print(f"{'Header1':<10} {'Header2':>10}") print("-" * 20)
Chuẩn bị cho bài tiếp theo:
Bài tiếp theo sẽ học về 🧵 F-string, format chuỗi - Cách định dạng string chuyên nghiệp và hiện đại nhất trong Python!
💡 Mẹo: print() không chỉ để hiển thị kết quả, mà còn là công cụ debug mạnh mẽ. Hãy sử dụng nó thường xuyên khi phát triển chương trình!
🎨 Thực hành: Hãy thử tạo một menu hoặc bảng thông tin đẹp mắt bằng print()!