String formatting trong Python là quá trình xây dựng một đại diện chuỗi một cách động bằng cách chèn giá trị của các biểu thức số vào một chuỗi đã tồn tại. Toán tử nối chuỗi của Python không chấp nhận một toán hạng không phải chuỗi. Do đó, Python cung cấp các kỹ thuật định dạng chuỗi sau đây −
Using % operator
Using format() method of str class
Using f-string
Using String Template class
Toán tử "%" (modulo) thường được gọi là toán tử định dạng chuỗi. Nó nhận một chuỗi định dạng cùng với một tập hợp các biến và kết hợp chúng để tạo ra một chuỗi chứa các giá trị của các biến được định dạng theo cách đã chỉ định.
Để chèn một chuỗi vào một chuỗi định dạng bằng cách sử dụng toán tử "%", chúng ta sử dụng "%s" như trong ví dụ dưới đây −
name = "Tutorialspoint" print("Welcome to %s!" % name)
Nó sẽ tạo ra output −
Welcome to Tutorialspoint!
Đó là một phương thức tích hợp sẵn của lớp str . Phương thức format() hoạt động bằng cách định nghĩa các vị trí giữ chỗ trong một chuỗi sử dụng dấu ngoặc nhọn "{}". Các vị trí giữ chỗ này sau đó được thay thế bằng các giá trị được chỉ định trong các tham số của phương thức.
Trong ví dụ dưới đây, chúng tôi đang sử dụng phương thức format() để chèn các giá trị vào một chuỗi một cách động.
str = "Welcome to {}" print(str.format("Tutorialspoint"))
Khi chạy đoạn mã trên, nó sẽ tạo ra output −
Welcome to Tutorialspoint
F-string, còn được gọi là chuỗi định dạng, được sử dụng để nhúng các biểu thức bên trong chuỗi. Chữ "f" trong f-string đại diện cho định dạng, và việc thêm nó trước chuỗi sẽ tạo thành một f-string. Các dấu ngoặc nhọn "{}" bên trong chuỗi sẽ hoạt động như các vị trí giữ chỗ được điền bằng các biến, biểu thức hoặc các cuộc gọi hàm.
Ví dụ dưới đây minh họa cách hoạt động của f-strings với các biểu thức.
item1_price = 2500 item2_price = 300 total = f'Total: {item1_price + item2_price}' print(total)
Đầu ra của đoạn mã trên như sau −
Total: 2800
Lớp String Template thuộc về mô-đun string và cung cấp một cách để định dạng chuỗi bằng cách sử dụng các vị trí giữ chỗ. Ở đây, các vị trí giữ chỗ được định nghĩa bằng một dấu đô la ($) theo sau là một định danh.
Ví dụ sau đây cho thấy cách sử dụng lớp Template để định dạng chuỗi.
from string import Template # Defining template string str = "Hello and Welcome to $name !" # Creating Template object templateObj = Template(str) # now provide values new_str = templateObj.substitute(name="Tutorialspoint") print(new_str)
Nó sẽ tạo ra output −
Hello and Welcome to Tutorialspoint !