Chuyển đến nội dung chính

Hướng dẫn Python String format()

Tìm hiểu về định dạng chuỗi trong Python.
Đã cập nhật 5 thg 10, 2026  · 5 phút đọc

Khám phá cùng AI

ChatGPTClaudePerplexity

Định dạng chuỗi (string formatting) còn gọi là nội suy chuỗi. Đây là quá trình chèn một chuỗi tùy chỉnh hoặc biến vào phần văn bản đã được định nghĩa trước.

custom_string = "String formatting"
print(f"{custom_string} is a powerful technique")
String formatting is a powerful technique

Với vai trò nhà khoa học dữ liệu, bạn sẽ dùng kỹ thuật này để chèn tiêu đề vào biểu đồ, hiển thị thông báo hoặc lỗi, hay truyền một câu lệnh vào hàm.

Các phương pháp định dạng

  • Định dạng theo vị trí
  • Chuỗi ký tự f (formatted string literals)
  • Phương thức Template

Phương thức String.format

Chúng ta đặt các chỗ chèn (placeholder) được xác định bằng một cặp ngoặc nhọn trong văn bản. Gọi phương thức dot format của chuỗi, sau đó truyền giá trị mong muốn vào phương thức. Phương thức sẽ thay thế các chỗ chèn theo thứ tự xuất hiện bằng các giá trị tương ứng:

'text{}'.format(value)

Định dạng theo vị trí

Ta định nghĩa một chuỗi và chèn hai chỗ chèn. Ta truyền hai chuỗi cho phương thức, những chuỗi này sẽ được đưa vào để cho ra kết quả sau:

print("Machine learning provides {} the ability to learn {}".format("systems", "automatically"))
Machine learning provides systems the ability to learn automatically

Ta có thể dùng biến cho cả chuỗi lẫn các giá trị truyền vào phương thức. Trong ví dụ dưới đây, ta định nghĩa một chuỗi có chỗ chèn và hai biến khác. Ta áp dụng phương thức format lên chuỗi bằng hai biến đã định nghĩa. Phương thức đọc chuỗi và thay thế các chỗ chèn bằng giá trị đã cho.

my_string = "{} rely on {} datasets"
method = "Supervised algorithms"
condition = "labeled"
print(my_string.format(method, condition))
Supervised algorithms rely on labeled datasets

Sắp xếp lại giá trị

Trong ví dụ dưới đây, bạn thêm số chỉ mục vào chỗ chèn để sắp xếp lại giá trị. Điều này ảnh hưởng đến thứ tự phương thức thay thế các chỗ chèn.

Phương thức sẽ thay thế chúng bằng các giá trị theo thứ tự được chỉ định.

print("{} has a friend called {} and a sister called {}". format("Betty", "Linda", "Daisy"))
Betty has a friend called Linda and a sister called Daisy

Nếu chúng ta thêm số chỉ mục, thứ tự thay thế sẽ thay đổi tương ứng.

print("{2} has a friend called {0} and a sister called {1}". format("Betty", "Linda", "Daisy"))
Daisy has a friend called Betty and a sister called Linda

Chỗ chèn theo tên

Chúng ta cũng có thể dùng các đối số từ khóa và gọi theo tên từ khóa của chúng.

Trong ví dụ dưới đây, ta chèn từ khóa vào các chỗ chèn. Sau đó, gọi các từ khóa này trong phương thức format. Rồi gán biến nào sẽ được truyền cho từng từ khóa, kết quả như sau.

tool="Unsupervised algorithms"
goal="patterns"
print("{title} try to find {aim} in the dataset".format(title=tool, aim=goal))
Unsupervised algorithms try to find patterns in the dataset

Hãy xem đoạn mã dưới đây. Chúng ta đã định nghĩa một dictionary với các khóa: tool và goal.

my_methods = {"tool": "Unsupervised algorithms", "goal": "patterns"}

Chúng ta muốn chèn các giá trị của chúng vào một chuỗi. Bên trong chỗ chèn, có thể chỉ định giá trị gắn với khóa tool của biến data bằng cú pháp ngoặc vuông. Data là dictionary được chỉ định trong phương thức, và tool là khóa có trong dictionary đó.

print('{data[tool]} try to find {data[goal]} in the dataset'.format(data=my_methods))

Và ta nhận được kết quả như mong muốn ở dưới. Lưu ý! Bạn cần chỉ định chỉ mục mà không dùng dấu ngoặc kép.

Unsupervised algorithms try to find patterns in the dataset

Bộ chỉ định định dạng

Chúng ta cũng có thể chỉ định định dạng bên trong ngoặc nhọn. Điều này xác định cách trình bày từng giá trị. Ở đây, ta sẽ dùng cú pháp chỉ mục, dấu hai chấm, rồi bộ chỉ định. Một trong các bộ chỉ định phổ biến là số thực dạng float được biểu diễn bằng f. Trong mã, ta chỉ rõ rằng giá trị truyền với chỉ mục 0 sẽ là số thực.

print("Only {0:f}% of the {1} produced worldwide is {2}!". format(0.5155675, "data", "analyzed"))
Only 0.515567% of the data produced worldwide is analyzed!

Ta cũng có thể thêm .2f để chỉ định muốn số thực có hai chữ số thập phân, như thấy ở kết quả.

print("Only {0:.2f}% of the {1} produced worldwide is {2}!".format(0.5155675, "data", "analyzed"))
Only 0.52% of the data produced worldwide is analyzed!

Định dạng datetime

Python có một mô-đun gọi là datetime cho phép chúng ta, ví dụ, lấy thời gian và ngày hôm nay.

from datetime import datetime
print(datetime.now())
2020-08-08 06:28:42.715243

Nhưng vì định dạng trả về khá đặc thù, bạn có thể dùng bộ chỉ định định dạng như %y-%m-%d-%h-%m để điều chỉnh sang định dạng quen thuộc hơn với chúng ta!

print("Today's date is {:%Y-%m-%d %H:%M}".format(datetime.now()))
Today's date is 2020-08-08 06:29

Ví dụ tương tác

Trong ví dụ sau, bạn sẽ gán các chuỗi con từ ký tự thứ 4 đến thứ 19, và từ ký tự thứ 22 đến thứ 44 của wikipedia_article lần lượt cho các biến first_pos và second_pos. Điều chỉnh các chuỗi về dạng chữ thường. Cuối cùng, in ra các biến first_pos và second_pos.

# Assign the substrings to the variables
first_pos = wikipedia_article[3:19].lower()
second_pos = wikipedia_article[21:44].lower()

Khi chạy đoạn mã trên, ta nhận được kết quả sau:

computer science artificial intelligence

Tự mình thử.

Để tìm hiểu thêm về định dạng theo vị trí, vui lòng xem video từ khóa học Regular Expressions in Python của chúng tôi.

Nội dung này được trích từ khóa học Regular Expressions in Python của DataCamp do Maria Eugenia Inzaugarat biên soạn.

Khám phá Hướng dẫn Python String của chúng tôi.

Chủ đề
Python

Khóa học Python

Khóa học

Nhập môn Python

4 giờ
7.1M
Nắm vững phân tích dữ liệu với Python chỉ trong 4 giờ. Khóa học online này giúp bạn làm quen với giao diện Python và các thư viện phổ biến.
Xem chi tiếtRight Arrow
Bắt Đầu Khóa Học
Xem thêmRight Arrow
Liên quan

blog

Claude Opus 4.6: Tính năng, Điểm chuẩn, Bài kiểm tra thực hành và hơn thế nữa

Mô hình mới nhất của Anthropic dẫn đầu ở mã hóa tác tử và lập luận phức tạp. Thêm vào đó, nó có cửa sổ ngữ cảnh 1M.
Matt Crabtree's photo

Matt Crabtree

10 phút

Xem ThêmXem Thêm