Tôi có một chuỗi biểu mẫu này
s='arbit'
string='%s hello world %s hello world %s' %(s,s,s)
Tất cả% s trong chuỗi có cùng giá trị (tức là s). Có cách nào tốt hơn để viết điều này không? (Thay vì liệt kê ra ba lần)
%
điều hành chuỗi sẽ được "bị phản đối trên Python 3.1 và loại bỏ sau đó tại một thời gian" docs.python.org/release/3.0.1/whatsnew/... bây giờ tôi tự hỏi cách khuyên nhất cho cả hai khả năng tương thích phiên bản và bảo mật là gì.
str.format()
. Ví dụ:, query = "SELECT * FROM {named_arg}"; query.format(**kwargs)
ở đâu query
là chuỗi định dạng và kwargs
là một từ điển có các khóa khớp với các named_arg
s trong chuỗi định dạng.
{0}
, {1}
, {2}
và vân vân tương ứng với chỉ số tuple 0
, 1
và 2
, tương ứng. Ngoài ra, bạn cũng có thể đặt tên cho các args (như {named_arg}
) và đặt mỗi args theo phương thức định dạng, như sau:'Hi {fname} {lname}!'.format(fname='John', lname='Doe')