Hiển thị biến trong Python bằng lệnh print()
Python Tutorial | by
Trong quá trình lập trình, việc có thể "nhìn thấy" dữ liệu mà chương trình đang xử lý là vô cùng quan trọng. Cho dù bạn đang kiểm tra giá trị của một biến, hiển thị kết quả tính toán, hay thông báo cho người dùng, lệnh print()
chính là công cụ bạn cần. Trong Python, print()
không chỉ đơn thuần là hiển thị văn bản cố định mà còn là một cách mạnh mẽ để kiểm tra và trình bày giá trị của các biến một cách linh hoạt. Bài này sẽ giới thiệu vai trò cơ bản của lệnh print()
, khám phá các phương pháp khác nhau để hiển thị biến – từ cách đơn giản nhất đến những kỹ thuật hiện đại và tiện lợi như f-string – giúp bạn kiểm soát hoàn toàn đầu ra của chương trình.
Giới thiệu lệnh print()
trong Python
Trong lập trình Python, lệnh print()
là một trong những hàm được sử dụng phổ biến và quan trọng nhất. Nó là cửa sổ giúp bạn "nhìn thấy" những gì đang diễn ra bên trong chương trình của mình.
Mục đích cơ bản: Hiển thị thông tin ra màn hình (console)
-
print()
là một hàm tích hợp sẵn (built-in function) trong Python, có nghĩa là bạn có thể sử dụng nó ngay lập tức mà không cần phải cài đặt hay khai báo gì thêm. -
Mục đích chính của
print()
là để xuất (output) thông tin ra màn hình điều khiển (console) – nơi bạn thường thấy kết quả khi chạy một chương trình Python. -
Thông tin mà
print()
hiển thị có thể là văn bản cố định (chuỗi ký tự), số, kết quả của các phép tính, hoặc giá trị của các biến.
Ví dụ cơ bản:
print("Chào mừng bạn đến với lập trình Python!") # In ra một chuỗi văn bản cố định print(123) # In ra một số nguyên print(3.14159) # In ra một số thực print(True) # In ra một giá trị Boolean
Output:
Chào mừng bạn đến với lập trình Python! 123 3.14159 True
Tại sao cần hiển thị biến?
Mặc dù print()
có thể in ra thông tin cố định, sức mạnh thực sự của nó nằm ở khả năng hiển thị giá trị của các biến. Việc này cực kỳ quan trọng vì một số lý do:
Kiểm tra giá trị biến trong quá trình lập trình (Debugging):
-
Khi bạn viết chương trình, đặc biệt là những chương trình phức tạp, các biến sẽ liên tục thay đổi giá trị. Bạn cần biết giá trị hiện tại của một biến tại một thời điểm cụ thể để kiểm tra xem logic của mình có đúng không.
-
Sử dụng
print()
là một cách đơn giản và hiệu quả để gỡ lỗi (debug). Bạn có thể chèn các lệnhprint()
vào các điểm khác nhau trong code để xem giá trị của biến và tìm ra nguyên nhân nếu có lỗi xảy ra.
Ví dụ:
so_ban_dau = 10 print(f"Giá trị ban đầu: {so_ban_dau}") # Kiểm tra giá trị ban đầu so_ban_dau += 5 # Thực hiện một phép tính print(f"Giá trị sau khi cộng 5: {so_ban_dau}") # Kiểm tra giá trị sau phép tính if so_ban_dau > 12: ket_qua_kiem_tra = "Lớn hơn 12" else: ket_qua_kiem_tra = "Nhỏ hơn hoặc bằng 12" print(f"Kết quả kiểm tra điều kiện: {ket_qua_kiem_tra}") # Kiểm tra kết quả logic
Hiển thị kết quả tính toán, thông báo cho người dùng:
-
Mục đích cuối cùng của hầu hết các chương trình là cung cấp một loại kết quả hoặc thông tin nào đó cho người dùng. Các kết quả này thường được lưu trữ trong các biến.
-
Bạn dùng
print()
để trình bày những kết quả này (ví dụ: tổng số tiền, điểm trung bình, trạng thái đơn hàng) một cách rõ ràng và thân thiện.
gia_san_pham = 50.0 so_luong = 3 tong_tien = gia_san_pham * so_luong print(f"Tổng số tiền bạn cần thanh toán là: {tong_tien} USD") # Hiển thị kết quả tính toán ten_khach_hang = "Phan A" print(f"Chào mừng {ten_khach_hang}! Đơn hàng của bạn đã được xác nhận.") # Thông báo cho người dùng
Lệnh print()
là công cụ cơ bản và không thể thiếu, giúp bạn tương tác với chương trình bằng cách hiển thị các giá trị, đặc biệt là giá trị của biến, để theo dõi quá trình thực thi và trình bày kết quả.
Các Cách Cơ Bản để Hiển thị Biến với print()
trong Python
Lệnh print()
rất linh hoạt trong cách nó có thể hiển thị giá trị của biến. Dưới đây là hai phương pháp cơ bản mà bạn sẽ thường xuyên sử dụng:
In Trực Tiếp Giá Trị của Biến
Cách đơn giản nhất để hiển thị giá trị của một biến là truyền trực tiếp tên biến đó vào bên trong dấu ngoặc đơn của hàm print()
. Python sẽ tự động lấy giá trị mà biến đang giữ và in nó ra màn hình.
Cú pháp:
print(ten_bien)
Ví dụ:
# Biến lưu trữ một số nguyên so_luong = 50 print(so_luong) # Output: 50 # Biến lưu trữ một chuỗi ký tự loai_hoa_qua = "Táo" print(loai_hoa_qua) # Output: Táo # Biến lưu trữ một giá trị Boolean dang_dang_nhap = True print(dang_dang_nhap) # Output: True # Biến lưu trữ một số thực nhiet_do = 28.5 print(nhiet_do) # Output: 28.5
Cách này nhanh chóng và tiện lợi khi bạn chỉ muốn xem giá trị thuần túy của một biến.
Nối Chuỗi và Biến bằng Dấu +
Khi bạn muốn hiển thị giá trị của biến cùng với một đoạn văn bản giải thích, bạn có thể sử dụng toán tử nối chuỗi (+
).
Cú pháp:
print("Văn bản cố định " + ten_bien)
Lưu ý quan trọng:
-
Khi sử dụng dấu
+
để nối, tất cả các phần tử phải là kiểu chuỗi (str
). -
Nếu biến của bạn không phải là kiểu chuỗi (ví dụ: là số nguyên, số thực, hoặc boolean), bạn phải chuyển đổi nó thành chuỗi bằng hàm
str()
trước khi nối. Nếu không, Python sẽ báo lỗiTypeError
.
Ví dụ nối chuỗi với chuỗi:
ten_nguoi_dung = "Lan" loi_chao = "Xin chào, " + ten_nguoi_dung + "!" print(loi_chao) # Output: Xin chào, Lan! dia_chi = "số 123" duong = "đường ABC" dia_chi_day_du = dia_chi + " " + duong print(dia_chi_day_du) # Output: số 123 đường ABC
Ví dụ nối chuỗi với số (cần chuyển đổi kiểu):
tuoi = 30 so_luong_hang = 15 # Lỗi nếu không chuyển đổi kiểu! # print("Tuổi của tôi là: " + tuoi) # Output: TypeError: can only concatenate str (not "int") to str # Cách đúng: Chuyển đổi số thành chuỗi bằng str() print("Tuổi của tôi là: " + str(tuoi) + " tuổi.") # Output: Tuổi của tôi là: 30 tuổi. print("Số lượng hàng trong kho: " + str(so_luong_hang) + " sản phẩm.") # Output: Số lượng hàng trong kho: 15 sản phẩm.
Cách nối chuỗi bằng dấu +
hữu ích khi bạn muốn xây dựng một chuỗi kết quả phức tạp từ nhiều phần khác nhau. Tuy nhiên, nó có thể hơi rườm rà vì yêu cầu chuyển đổi kiểu dữ liệu thủ công. Các phần tiếp theo sẽ giới thiệu những phương pháp hiện đại và tiện lợi hơn để làm việc này.
Các Cách Hiển thị Biến Nâng Cao với print()
trong Python
Khi bạn muốn kiểm soát nhiều hơn về cách hiển thị biến trong đầu ra, Python cung cấp một số phương pháp nâng cao hơn, giúp code của bạn gọn gàng và dễ đọc hơn đáng kể so với việc dùng dấu +
.
Sử dụng Dấu Phẩy (,
) để Phân tách Các Mục
Đây là một cách rất tiện lợi để kết hợp văn bản cố định và các biến trong lệnh print()
. Khi bạn truyền nhiều đối số cho print()
và ngăn cách chúng bằng dấu phẩy, print()
sẽ tự động nối chúng lại với nhau.
Cú pháp:
print(item1, item2, item3, ...)
Ưu điểm nổi bật:
-
Tự động thêm dấu cách:
print()
sẽ tự động chèn một dấu cách ( -
Không cần chuyển đổi kiểu dữ liệu: Đây là lợi ích lớn so với việc dùng dấu
+
.print()
sẽ tự động xử lý việc chuyển đổi các biến không phải chuỗi (như số, boolean) thành chuỗi trước khi in.
Ví dụ:
ten_san_pham = "Laptop Dell XPS" gia = 1200.50 so_luong_ton = 10 # In chuỗi và biến, tự động thêm dấu cách và chuyển đổi kiểu print("Sản phẩm:", ten_san_pham, "Giá:", gia, "Số lượng:", so_luong_ton) # Output: Sản phẩm: Laptop Dell XPS Giá: 1200.5 Số lượng: 10 # In nhiều biến cùng lúc trang_thai_hoan_thanh = True ma_don_hang = "DH20250711" print("Mã đơn hàng:", ma_don_hang, "Trạng thái hoàn thành:", trang_thai_hoan_thanh) # Output: Mã đơn hàng: DH20250711 Trạng thái hoàn thành: True
Sử dụng f-string (Formatted String Literals) - Cách Hiện Đại và Dễ Dùng Nhất
f-string là một tính năng được giới thiệu từ Python 3.6 trở đi và được coi là cách hiện đại, mạnh mẽ và dễ đọc nhất để định dạng chuỗi và hiển thị biến.
-
Cú pháp: Bạn chỉ cần đặt chữ
f
(hoặcF
) ngay trước dấu nháy mở đầu chuỗi. Sau đó, bất kỳ biến hoặc biểu thức nào bạn muốn đưa vào chuỗi đều được đặt trong cặp dấu ngoặc nhọn{}
.
print(f"Văn bản {ten_bien} văn bản {bieu_thuc} văn bản khác.")
Ưu điểm nổi bật:
-
Cực kỳ linh hoạt và dễ đọc: Cú pháp trực quan giúp bạn dễ dàng hình dung chuỗi kết quả sẽ trông như thế nào.
-
Tự động chuyển đổi kiểu: Giống như khi dùng dấu phẩy, f-string tự động chuyển đổi kiểu dữ liệu của biến bên trong
{}
thành chuỗi. -
Có thể thực hiện phép tính nhỏ bên trong
{}
: Bạn có thể đặt trực tiếp các biểu thức hoặc phép tính đơn giản vào bên trong dấu ngoặc nhọn. -
Hỗ trợ định dạng mạnh mẽ: Bạn có thể dễ dàng định dạng số thập phân, căn lề, thêm dấu phẩy ngăn cách hàng nghìn, v.v. (sẽ không đi sâu vào chi tiết ở đây để giữ tính cơ bản).
Ví dụ:
ten = "Bảo" tuoi = 28 thanh_pho = "Đà Nẵng" # In nhiều biến với văn bản một cách dễ đọc print(f"Xin chào, tôi là {ten}, {tuoi} tuổi và tôi đến từ {thanh_pho}.") # Output: Xin chào, tôi là Bảo, 28 tuổi và tôi đến từ Đà Nẵng. # Thực hiện phép tính nhỏ bên trong f-string gia_san_pham = 25.5 so_luong = 4 print(f"Tổng tiền cho {so_luong} sản phẩm là: {gia_san_pham * so_luong} USD.") # Output: Tổng tiền cho 4 sản phẩm là: 102.0 USD. # Định dạng số thập phân (làm tròn) pi = 3.14159265 print(f"Giá trị của Pi (làm tròn 2 chữ số): {pi:.2f}") # Output: Giá trị của Pi (làm tròn 2 chữ số): 3.14
Sử dụng .format()
Method (Cách cũ hơn f-string)
Trước khi f-string ra đời, phương thức .format()
là cách mạnh mẽ và phổ biến nhất để định dạng chuỗi. Mặc dù f-string hiện nay được ưu tiên hơn do tính tiện lợi, .format()
vẫn hoàn toàn hợp lệ và bạn có thể gặp nó trong các mã nguồn cũ hơn.
-
Cú pháp: Bạn đặt các cặp ngoặc nhọn
{}
làm chỗ giữ chỗ trong chuỗi, sau đó gọi phương thức.format()
trên chuỗi đó và truyền các biến theo thứ tự vào bên trongformat()
.
print("Văn bản {} văn bản khác {}.".format(bien1, bien2))
Ưu điểm: Linh hoạt hơn việc dùng dấu +
vì nó cũng tự động chuyển đổi kiểu dữ liệu và cho phép định dạng. Tuy nhiên, nó kém trực quan hơn f-string vì các biến không nằm trực tiếp trong chuỗi.
Ví dụ cơ bản:
ten_mon_hoc = "Python Cơ Bản" so_tin_chi = 3 # Dùng .format() theo thứ tự vị trí print("Môn học: {}, Số tín chỉ: {}.".format(ten_mon_hoc, so_tin_chi)) # Output: Môn học: Python Cơ Bản, Số tín chỉ: 3. # Dùng .format() với chỉ số (có thể thay đổi thứ tự) print("Số tín chỉ: {1}, Môn học: {0}.".format(ten_mon_hoc, so_tin_chi)) # Output: Số tín chỉ: 3, Môn học: Python Cơ Bản. # Dùng .format() với tên tham số (dễ đọc hơn) print("Giáo viên: {gv_ten}, Môn: {mon_hoc_ten}.".format(gv_ten="Thầy Bình", mon_hoc_ten="Lập trình web")) # Output: Giáo viên: Thầy Bình, Môn: Lập trình web.
Mỗi phương pháp trên đều có ưu và nhược điểm riêng. Trong các dự án mới hoặc khi bạn muốn mã dễ đọc nhất, f-string là lựa chọn hàng đầu. Tuy nhiên, hiểu được các cách khác cũng rất quan trọng để bạn có thể đọc và hiểu code Python hiện có.
Các Tùy Chọn Mở Rộng của print()
trong Python
Ngoài việc hiển thị biến và chuỗi, hàm print()
trong Python còn cung cấp các tham số tùy chọn giúp bạn kiểm soát chi tiết hơn về cách đầu ra xuất hiện trên màn hình. Hai tham số phổ biến và hữu ích nhất là sep
và end
.
Tham số sep
(separator - ký tự phân tách)
-
Mục đích: Khi bạn in nhiều mục (biến hoặc giá trị) bằng cách ngăn cách chúng bằng dấu phẩy (ví dụ:
print(item1, item2, item3)
), Python sẽ tự động chèn một dấu cách (sep
cho phép bạn thay đổi ký tự phân cách mặc định này thành bất kỳ chuỗi nào bạn muốn. -
Giá trị mặc định: Dấu cách (
' '
). -
Cách sử dụng: Bạn truyền
sep='ký tự_tách'
vào cuối danh sách các đối số của hàmprint()
.
Ví dụ:
ngay = 11 thang = 7 nam = 2025 # Mặc định (sep=' ') print(ngay, thang, nam) # Output: 11 7 2025 # Dùng sep='-' để phân tách ngày tháng năm print(ngay, thang, nam, sep='-') # Output: 11-7-2025 # Dùng sep=' | ' để phân tách các mục trong báo cáo san_pham = "Laptop" gia = 1200 ton_kho = 50 print("Sản phẩm:", san_pham, "Giá:", gia, "Tồn kho:", ton_kho, sep=' | ') # Output: Sản phẩm: | Laptop | Giá: | 1200 | Tồn kho: | 50
Tham số sep
rất tiện lợi khi bạn muốn in ra các danh sách dữ liệu hoặc các thông tin có cấu trúc một cách rõ ràng và dễ đọc.
Tham số end
(ký tự kết thúc)
-
Mục đích: Sau khi
print()
hoàn thành việc in tất cả các mục, nó sẽ thêm một ký tự đặc biệt vào cuối dòng. Mặc định, ký tự này là ký tự xuống dòng (\n
), khiến mỗi lệnhprint()
mới bắt đầu trên một dòng riêng biệt. Tham sốend
cho phép bạn thay đổi ký tự kết thúc dòng mặc định này thành bất kỳ chuỗi nào bạn muốn (hoặc thậm chí là chuỗi rỗng). -
Giá trị mặc định: Ký tự xuống dòng (
'\n'
). -
Cách sử dụng: Bạn truyền
end='ký_tự_kết_thúc'
vào cuối danh sách các đối số của hàmprint()
.
Ví dụ:
# Mặc định, mỗi lệnh print() sẽ xuống dòng print("Dòng một") print("Dòng hai") # Output: # Dòng một # Dòng hai # Dùng end=' ' để các lệnh print() tiếp theo nằm trên cùng một dòng print("Hello", end=' ') # In "Hello" và theo sau là một dấu cách, không xuống dòng print("World!") # In "World!" và xuống dòng (vì đây là lệnh print cuối cùng) # Output: Hello World! # Dùng end='' (chuỗi rỗng) để không thêm ký tự nào vào cuối print("Counting down:", end='') for i in range(3, 0, -1): print(f" {i}", end='') # Mỗi số được in cách nhau bằng dấu cách, không xuống dòng print("!") # Sau vòng lặp, in dấu chấm than và xuống dòng mặc định # Output: Counting down: 3 2 1!
Tham số end
đặc biệt hữu ích khi bạn muốn in nhiều phần của thông tin trên cùng một dòng, hoặc khi bạn muốn tạo ra một thanh tiến trình (progress bar) mà không làm tràn console.
Việc tận dụng các tùy chọn sep
và end
của hàm print()
sẽ giúp bạn kiểm soát đầu ra chương trình một cách hiệu quả và linh hoạt hơn rất nhiều.
Kết bài
Vậy là chúng ta đã cùng nhau tìm hiểu những cách cơ bản và nâng cao để hiển thị biến trong Python bằng lệnh print()
. Từ việc in trực tiếp giá trị của biến, nối chuỗi bằng dấu +
(với lưu ý về chuyển đổi kiểu dữ liệu), cho đến các phương pháp hiện đại và linh hoạt hơn như sử dụng dấu phẩy để phân tách các mục và đặc biệt là f-string, bạn giờ đây đã có trong tay bộ công cụ mạnh mẽ để kiểm soát đầu ra chương trình của mình. Đừng quên tận dụng các tham số sep
và end
để tinh chỉnh thêm cách dữ liệu được trình bày. Việc thành thạo print()
không chỉ giúp bạn dễ dàng gỡ lỗi (debug) mà còn là chìa khóa để tạo ra các ứng dụng thân thiện, cung cấp thông tin rõ ràng và dễ hiểu cho người dùng. Hãy tiếp tục thực hành để biến print()
thành một công cụ không thể thiếu trong hành trình lập trình Python của bạn!