0

F-Strings trong Python

đã đăng vào 31, Tháng 5, 2026, 19:37

Tất tần tật về f-strings trong Python

Giới thiệu

Khi lập trình bằng Python, chúng ta thường xuyên phải in ra màn hình các giá trị của biến để kiểm tra chương trình hoặc xuất kết quả theo định dạng yêu cầu.

Trước Python 3.6, lập trình viên thường sử dụng:

name = "Steve"
age = 15

print("Tên:", name, "Tuổi:", age)

hoặc:

print("Tên: {} Tuổi: {}".format(name, age))

Tuy nhiên, từ Python 3.6 trở đi, Python giới thiệu f-string (formatted string literal) giúp việc định dạng chuỗi trở nên ngắn gọn, trực quan và nhanh hơn.

print(f"Tên: {name} Tuổi: {age}")

Ngày nay, f-string được xem là cách định dạng chuỗi phổ biến nhất trong Python.


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

Để tạo f-string, thêm ký tự f trước dấu nháy.

name = "Steve"

print(f"Xin chào {name}")

Kết quả:

Xin chào Steve

Mọi biểu thức nằm trong dấu {} sẽ được Python tính toán rồi thay thế vào chuỗi.


2. Chèn nhiều biến

name = "Steve"
age = 15

print(f"Tôi là {name}, năm nay {age} tuổi.")

Kết quả:

Tôi là Steve, năm nay 15 tuổi.

3. Chèn biểu thức

Không chỉ biến, f-string còn cho phép viết trực tiếp các biểu thức.

a = 5
b = 7

print(f"{a} + {b} = {a + b}")

Kết quả:

5 + 7 = 12

Ví dụ khác:

x = 10

print(f"Bình phương của x là {x ** 2}")

Kết quả:

Bình phương của x là 100

4. Gọi hàm trong f-string

name = "steve"

print(f"{name.upper()}")

Kết quả:

STEVE

Hoặc:

print(f"{len(name)}")

Kết quả:

5

5. Định dạng số thực

Đây là một trong những ứng dụng quan trọng nhất của f-string.

Làm tròn đến n chữ số thập phân

pi = 3.1415926535

print(f"{pi:.2f}")

Kết quả:

3.14

Ý nghĩa:

  • .2 : lấy 2 chữ số sau dấu phẩy.
  • f : hiển thị dưới dạng số thực.

Ví dụ:

x = 12.345678

print(f"{x:.3f}")

Kết quả:

12.346

6. Định dạng phần trăm

score = 0.875

print(f"{score:.2%}")

Kết quả:

87.50%

Python tự động nhân với 100 và thêm ký hiệu %.


7. Định dạng dấu phẩy phân tách hàng nghìn

n = 1234567890

print(f"{n:,}")

Kết quả:

1,234,567,890

Rất hữu ích khi hiển thị số lớn.


8. Căn lề chuỗi

Căn phải

print(f"{'ABC':>10}")

Kết quả:

       ABC

Căn trái

print(f"{'ABC':<10}")

Kết quả:

ABC

Căn giữa

print(f"{'ABC':^10}")

Kết quả:

   ABC

9. Điền ký tự

print(f"{'ABC':*^10}")

Kết quả:

***ABC****

Giải thích:

  • * là ký tự điền.
  • ^ là căn giữa.
  • 10 là độ rộng.

10. Thêm số 0 phía trước

x = 42

print(f"{x:05}")

Kết quả:

00042

Ứng dụng:

hour = 8
minute = 5

print(f"{hour:02}:{minute:02}")

Kết quả:

08:05

11. Định dạng hệ cơ số

Nhị phân

n = 25

print(f"{n:b}")

Kết quả:

11001

Bát phân

print(f"{n:o}")

Kết quả:

31

Thập lục phân

print(f"{n:x}")

Kết quả:

19

Chữ hoa:

print(f"{n:X}")

Kết quả:

19

(với các số lớn hơn 9 sẽ hiện A, B, C...)


12. Debug cực nhanh với dấu =

Từ Python 3.8:

x = 10
y = 20

print(f"{x=}, {y=}")

Kết quả:

x=10, y=20

Rất tiện khi debug.

Ví dụ:

mid = (l + r) // 2

print(f"{l=}, {r=}, {mid=}")

13. Dùng biểu thức điều kiện

age = 15

print(f"{'Đủ tuổi' if age >= 18 else 'Chưa đủ tuổi'}")

Kết quả:

Chưa đủ tuổi

14. Xuống dòng trong f-string

name = "Steve"
age = 15

print(f"Tên: {name}\nTuổi: {age}")

Kết quả:

Tên: Steve
Tuổi: 15

15. Dấu ngoặc nhọn trong f-string

Nếu muốn in dấu { hoặc } thật sự:

print(f"{{Hello}}")

Kết quả:

{Hello}

16. f-string trong lập trình thi đấu

Trong Competitive Programming, f-string thường được dùng để:

In thông tin debug

print(f"{i=}, {j=}, {ans=}")

Xuất số thực chính xác

print(f"{ans:.6f}")

Hiển thị bảng

for i in range(1, 6):
    print(f"{i:<5}{i*i:<5}")

Kết quả:

1    1
2    4
3    9
4    16
5    25

17. So sánh f-string và format()

format()

name = "Steve"

print("Hello {}".format(name))

f-string

print(f"Hello {name}")

Ưu điểm của f-string:

  • Ngắn gọn hơn.
  • Dễ đọc hơn.
  • Viết biểu thức trực tiếp.
  • Thực thi nhanh hơn trong đa số trường hợp.

Vì vậy, khi dùng Python 3.6+, f-string thường là lựa chọn tốt nhất.


Bảng tóm tắt

Cú pháp Ý nghĩa
f"{x}" Chèn biến
f"{a+b}" Chèn biểu thức
f"{x:.2f}" 2 chữ số thập phân
f"{x:,}" Dấu phẩy hàng nghìn
f"{x:b}" Nhị phân
f"{x:o}" Bát phân
f"{x:x}" Hex
f"{x:05}" Thêm số 0
f"{s:<10}" Căn trái
f"{s:>10}" Căn phải
f"{s:^10}" Căn giữa
f"{x=}" Debug

Kết luận

f-string là một trong những tính năng hữu ích nhất của Python hiện đại. Nó giúp mã nguồn ngắn gọn, dễ đọc và mạnh mẽ hơn rất nhiều so với cách nối chuỗi hoặc sử dụng format() truyền thống.

Nếu bạn đang học Python hoặc lập trình thi đấu, hãy tập thói quen sử dụng f-string ngay từ đầu. Chỉ cần nắm vững các định dạng cơ bản như:

  • Chèn biến
  • Chèn biểu thức
  • Làm tròn số thực
  • Căn lề
  • Debug bằng =

là đã đủ để giải quyết phần lớn nhu cầu trong thực tế.


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.