Mô -đun chuỗi Python chứa một số hằng số, hàm tiện ích và các lớp để thao tác chuỗi.
Mô -đun chuỗi Python
Nó là một mô-đun tích hợp và chúng tôi phải nhập nó trước khi sử dụng bất kỳ hằng số và lớp nào của nó.
Hằng số mô -đun chuỗi
Hãy cùng nhìn vào các hằng số được xác định trong mô -đun chuỗi.
import string
# string module constants
print[string.ascii_letters]
print[string.ascii_lowercase]
print[string.ascii_uppercase]
print[string.digits]
print[string.hexdigits]
print[string.whitespace] # ' \t\n\r\x0b\x0c'
print[string.punctuation]
Output:
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefABCDEF
!"#$%&'[]*+,-./:;?@[\]^_`{|}~
Chuỗi capwords [] hàm
Mô -đun chuỗi Python chứa một hàm tiện ích duy nhất - Capwords [s, sep = none]. Hàm này chia chuỗi được chỉ định thành các từ bằng cách sử dụng str.split []. Sau đó, nó tận dụng từng từ bằng hàm
s = ' Welcome TO \n\n JournalDev '
print[string.capwords[s]]
3. Cuối cùng, nó tham gia các từ viết hoa bằng cách sử dụng str.join []. Nếu đối số tùy chọn SEP không được cung cấp hoặc không có, thì các không gian trắng dẫn và dấu vết được loại bỏ và các từ được phân tách bằng khoảng trắng đơn lẻ. Nếu nó được cung cấp thì bộ tách được sử dụng để phân chia và tham gia các từ.s = ' Welcome TO \n\n JournalDev '
print[string.capwords[s]]
Đầu ra:
s = ' Welcome TO \n\n JournalDev '
print[string.capwords[s]]
4Các lớp mô -đun chuỗi Python
Mô -đun chuỗi Python chứa hai lớp - Formatter và Mẫu.
Định hình
Nó hoạt động chính xác giống như hàm str.format []. Lớp này trở nên hữu ích nếu bạn muốn phân lớp nó và xác định cú pháp chuỗi định dạng của riêng bạn. Hãy cùng xem xét một ví dụ đơn giản về việc sử dụng lớp định dạng.
from string import Formatter
formatter = Formatter[]
print[formatter.format['{website}', website='JournalDev']]
print[formatter.format['{} {website}', 'Welcome to', website='JournalDev']]
# format[] behaves in similar manner
print['{} {website}'.format['Welcome to', website='JournalDev']]
Output:
Welcome to JournalDev
Welcome to JournalDev
Mẫu
Lớp này được sử dụng để tạo một mẫu chuỗi để thay thế chuỗi đơn giản hơn như được mô tả trong PEP 292. Nó rất hữu ích trong việc thực hiện quốc tế hóa [I18N] trong một ứng dụng mà chúng tôi không cần các quy tắc định dạng phức tạp.
from string import Template
t = Template['$name is the $title of $company']
s = t.substitute[name='Pankaj', title='Founder', company='JournalDev.']
print[s]
Đầu ra:
s = ' Welcome TO \n\n JournalDev '
print[string.capwords[s]]
5Bạn có thể kiểm tra toàn bộ tập lệnh Python và nhiều ví dụ về Python từ Kho lưu trữ GitHub của chúng tôi.
Tham khảo: Tài liệu chính thức
Mã nguồn: lib/string.py Lib/string.py
Chuỗi hằng số lor
Các hằng số được xác định trong mô -đun này là:
String.ascii_letters¶ascii_letters¶Sự kết hợp của hằng số
s = ' Welcome TO \n\n JournalDev '
print[string.capwords[s]]
6 và s = ' Welcome TO \n\n JournalDev '
print[string.capwords[s]]
7 được mô tả dưới đây. Giá trị này không phụ thuộc vào địa phương. String.ascii_lowercase¶ascii_lowercase¶Các chữ cái chữ thường
s = ' Welcome TO \n\n JournalDev '
print[string.capwords[s]]
8. Giá trị này không phụ thuộc vào địa phương và sẽ không thay đổi. String.ascii_uppercase¶ascii_uppercase¶Các chữ cái viết hoa
s = ' Welcome TO \n\n JournalDev '
print[string.capwords[s]]
9. Giá trị này không phụ thuộc vào địa phương và sẽ không thay đổi. String.digits¶digits¶Chuỗi
from string import Formatter
formatter = Formatter[]
print[formatter.format['{website}', website='JournalDev']]
print[formatter.format['{} {website}', 'Welcome to', website='JournalDev']]
# format[] behaves in similar manner
print['{} {website}'.format['Welcome to', website='JournalDev']]
0. String.hexdigits¶hexdigits¶
Chuỗi
from string import Formatter
formatter = Formatter[]
print[formatter.format['{website}', website='JournalDev']]
print[formatter.format['{} {website}', 'Welcome to', website='JournalDev']]
# format[] behaves in similar manner
print['{} {website}'.format['Welcome to', website='JournalDev']]
1. String.octdigits¶octdigits¶Chuỗi
from string import Formatter
formatter = Formatter[]
print[formatter.format['{website}', website='JournalDev']]
print[formatter.format['{} {website}', 'Welcome to', website='JournalDev']]
# format[] behaves in similar manner
print['{} {website}'.format['Welcome to', website='JournalDev']]
2.
Chuỗi.punctuation¶Chuỗi các ký tự ASCII được coi là ký tự chấm câu trong ngôn ngữ
from string import Formatter
formatter = Formatter[]
print[formatter.format['{website}', website='JournalDev']]
print[formatter.format['{} {website}', 'Welcome to', website='JournalDev']]
# format[] behaves in similar manner
print['{} {website}'.format['Welcome to', website='JournalDev']]
3: from string import Formatter
formatter = Formatter[]
print[formatter.format['{website}', website='JournalDev']]
print[formatter.format['{} {website}', 'Welcome to', website='JournalDev']]
# format[] behaves in similar manner
print['{} {website}'.format['Welcome to', website='JournalDev']]
4.
String.Printable¶printable¶Chuỗi các ký tự ASCII được coi là có thể in. Đây là sự kết hợp của
from string import Formatter
formatter = Formatter[]
print[formatter.format['{website}', website='JournalDev']]
print[formatter.format['{} {website}', 'Welcome to', website='JournalDev']]
# format[] behaves in similar manner
print['{} {website}'.format['Welcome to', website='JournalDev']]
5, from string import Formatter
formatter = Formatter[]
print[formatter.format['{website}', website='JournalDev']]
print[formatter.format['{} {website}', 'Welcome to', website='JournalDev']]
# format[] behaves in similar manner
print['{} {website}'.format['Welcome to', website='JournalDev']]
6, from string import Formatter
formatter = Formatter[]
print[formatter.format['{website}', website='JournalDev']]
print[formatter.format['{} {website}', 'Welcome to', website='JournalDev']]
# format[] behaves in similar manner
print['{} {website}'.format['Welcome to', website='JournalDev']]
7 và from string import Formatter
formatter = Formatter[]
print[formatter.format['{website}', website='JournalDev']]
print[formatter.format['{} {website}', 'Welcome to', website='JournalDev']]
# format[] behaves in similar manner
print['{} {website}'.format['Welcome to', website='JournalDev']]
8.
String.Whitespace¶whitespace¶Một chuỗi chứa tất cả các ký tự ASCII được coi là khoảng trắng. Điều này bao gồm không gian ký tự, tab, linefeed, return, formFeed và tab dọc.
Định dạng chuỗi tùy chỉnh
Lớp chuỗi tích hợp cung cấp khả năng thực hiện các thay thế biến đổi phức tạp và định dạng giá trị thông qua phương thức
from string import Formatter
formatter = Formatter[]
print[formatter.format['{website}', website='JournalDev']]
print[formatter.format['{} {website}', 'Welcome to', website='JournalDev']]
# format[] behaves in similar manner
print['{} {website}'.format['Welcome to', website='JournalDev']]
9 được mô tả trong PEP 3101. Lớp Welcome to JournalDev
Welcome to JournalDev
0 trong mô-đun Welcome to JournalDev
Welcome to JournalDev
1 cho phép bạn tạo và tùy chỉnh các hành vi định dạng chuỗi của riêng bạn bằng cách sử dụng cùng một triển khai như là Phương pháp tích hợp from string import Formatter
formatter = Formatter[]
print[formatter.format['{website}', website='JournalDev']]
print[formatter.format['{} {website}', 'Welcome to', website='JournalDev']]
# format[] behaves in similar manner
print['{} {website}'.format['Welcome to', website='JournalDev']]
9.PEP 3101. The Welcome to JournalDev
Welcome to JournalDev
0 class in the Welcome to JournalDev
Welcome to JournalDev
1 module allows you to create and customize your own string formatting behaviors using the same
implementation as the built-in from string import Formatter
formatter = Formatter[]
print[formatter.format['{website}', website='JournalDev']]
print[formatter.format['{} {website}', 'Welcome to', website='JournalDev']]
# format[] behaves in similar manner
print['{} {website}'.format['Welcome to', website='JournalDev']]
9 method. classString.formatter¶string.Formatter¶Lớp
Welcome to JournalDev
Welcome to JournalDev
0 có các phương thức công khai sau: Định dạng [Format_String, /, *args, ** kwargs] ¶[format_string, /, *args,
**kwargs]¶Phương pháp API chính. Nó lấy một chuỗi định dạng và một tập hợp các đối số từ khóa và vị trí tùy ý. Nó chỉ là một trình bao bọc mà gọi
Welcome to JournalDev
Welcome to JournalDev
4.Đã thay đổi trong phiên bản 3.7: Đối số chuỗi định dạng hiện chỉ có vị trí.A format string argument is now positional-only.
vformat [format_string, args, kwargs] ¶[format_string, args, kwargs]¶Chức năng này thực hiện công việc thực tế của định dạng. Nó được phơi bày như một chức năng riêng biệt cho các trường hợp bạn muốn truyền trong một từ điển được xác định trước về các đối số, thay vì giải nén và đóng gói từ điển làm đối số riêng lẻ bằng cách sử dụng cú pháp
Welcome to JournalDev
Welcome to JournalDev
5 và Welcome to JournalDev
Welcome to JournalDev
6. Welcome to JournalDev
Welcome to JournalDev
4 Công việc chia chuỗi định dạng thành dữ liệu ký tự và các trường thay thế. Nó gọi các phương pháp khác nhau được mô tả dưới đây.Ngoài ra,
Welcome to JournalDev
Welcome to JournalDev
0 xác định một số phương thức được dự định sẽ được thay thế bằng các lớp con: phân tích cú pháp [format_string] ¶[format_string]¶Vòng lặp qua định dạng_string và trả về một bộ dữ liệu [literal_text, field_name, format_spec, chuyển đổi]. Điều này được sử dụng bởi
Welcome to JournalDev
Welcome to JournalDev
4 để chia chuỗi thành văn bản theo nghĩa đen hoặc các trường thay thế.Các giá trị trong tuple về mặt khái niệm đại diện cho một nhịp của văn bản theo nghĩa đen theo sau là một trường thay thế duy nhất. Nếu không có văn bản theo nghĩa đen [có thể xảy ra nếu hai trường thay thế xảy ra liên tiếp], thì literal_text sẽ là một chuỗi có độ dài bằng không. Nếu không có trường thay thế, thì các giá trị của field_name, format_spec và chuyển đổi sẽ là
from string import Template
t = Template['$name is the $title of $company']
s = t.substitute[name='Pankaj', title='Founder', company='JournalDev.']
print[s]
0. get_field [field_name, args, kwargs] ¶[field_name, args,
kwargs]¶Cho field_name được trả về bởi
from string import Template
t = Template['$name is the $title of $company']
s = t.substitute[name='Pankaj', title='Founder', company='JournalDev.']
print[s]
1 [xem ở trên], chuyển đổi nó thành một đối tượng được định dạng. Trả về một tuple [obj, used_key]. Phiên bản mặc định có các chuỗi của biểu mẫu được xác định trong PEP 3101, chẳng hạn như là 0 [tên] Args và kwargs được truyền đến Welcome to JournalDev
Welcome to JournalDev
4. Giá trị trả về đã sử dụng_key có cùng ý nghĩa với tham số chính với from string import Template
t = Template['$name is the $title of $company']
s = t.substitute[name='Pankaj', title='Founder', company='JournalDev.']
print[s]
3.PEP 3101, such as “0[name]” or “label.title”. args and kwargs are as passed in to Welcome to JournalDev
Welcome to JournalDev
4. The return value used_key has the same meaning as the key parameter to
from string import Template
t = Template['$name is the $title of $company']
s = t.substitute[name='Pankaj', title='Founder', company='JournalDev.']
print[s]
3. get_value [khóa, args, kwargs] ¶[key, args,
kwargs]¶Lấy một giá trị trường đã cho. Đối số chính sẽ là một số nguyên hoặc một chuỗi. Nếu nó là một số nguyên, nó đại diện cho chỉ số của đối số vị trí trong Args; Nếu đó là một chuỗi, thì nó đại diện cho một đối số được đặt tên trong kwargs.
Tham số ARGS được đặt thành danh sách các đối số vị trí thành
Welcome to JournalDev
Welcome to JournalDev
4 và tham số KWARGS được đặt thành từ điển của các đối số từ khóa.Đối với tên trường ghép, các chức năng này chỉ được gọi cho thành phần đầu tiên của tên trường; Các thành phần tiếp theo được xử lý thông qua các hoạt động thuộc tính và lập chỉ mục thông thường.
Vì vậy, ví dụ, biểu thức trường ‘0.Name, sẽ khiến
from string import Template
t = Template['$name is the $title of $company']
s = t.substitute[name='Pankaj', title='Founder', company='JournalDev.']
print[s]
3 được gọi bằng đối số chính là 0. Thuộc tính from string import Template
t = Template['$name is the $title of $company']
s = t.substitute[name='Pankaj', title='Founder', company='JournalDev.']
print[s]
6 sẽ được tra cứu sau khi trả về from string import Template
t = Template['$name is the $title of $company']
s = t.substitute[name='Pankaj', title='Founder', company='JournalDev.']
print[s]
3 bằng cách gọi hàm from string import Template
t = Template['$name is the $title of $company']
s = t.substitute[name='Pankaj', title='Founder', company='JournalDev.']
print[s]
8 tích hợp.Nếu chỉ mục hoặc từ khóa đề cập đến một mục không tồn tại, thì nên tăng
from string import Template
t = Template['$name is the $title of $company']
s = t.substitute[name='Pankaj', title='Founder', company='JournalDev.']
print[s]
9 hoặc replacement_field ::= "{" [0. Check_unuse_args [used_args, args, kwargs] ¶[used_args, args, kwargs]¶field_name
] ["!"conversion
] [":"format_spec
] "}" field_name ::= arg_name ["."attribute_name
| "["element_index
"]"]* arg_name ::= [identifier
|digit
+] attribute_name ::=identifier
element_index ::=digit
+ |index_string
index_string ::= + conversion ::= "r" | "s" | "a" format_spec ::=
Thực hiện kiểm tra các đối số không sử dụng nếu muốn. Các đối số cho hàm này là tập hợp tất cả các khóa đối số thực sự được đề cập trong chuỗi định dạng [số nguyên cho các đối số vị trí và các chuỗi cho các đối số được đặt tên] và tham chiếu đến ARGS và KWARGS được truyền cho VFormat. Tập hợp các arg không sử dụng có thể được tính từ các tham số này.
replacement_field ::= "{" [1 được giả định để tăng một ngoại lệ nếu kiểm tra không thành công. format_field [value, format_spec] ¶[value, format_spec]¶field_name
] ["!"conversion
] [":"format_spec
] "}" field_name ::= arg_name ["."attribute_name
| "["element_index
"]"]* arg_name ::= [identifier
|digit
+] attribute_name ::=identifier
element_index ::=digit
+ |index_string
index_string ::= + conversion ::= "r" | "s" | "a" format_spec ::=
replacement_field ::= "{" [2 chỉ đơn giản gọi là toàn cầufield_name
] ["!"conversion
] [":"format_spec
] "}" field_name ::= arg_name ["."attribute_name
| "["element_index
"]"]* arg_name ::= [identifier
|digit
+] attribute_name ::=identifier
element_index ::=digit
+ |index_string
index_string ::= + conversion ::= "r" | "s" | "a" format_spec ::=
from string import Formatter
formatter = Formatter[]
print[formatter.format['{website}', website='JournalDev']]
print[formatter.format['{} {website}', 'Welcome to', website='JournalDev']]
# format[] behaves in similar manner
print['{} {website}'.format['Welcome to', website='JournalDev']]
9 tích hợp. Phương pháp được cung cấp để các lớp con có thể ghi đè nó.
convert_field [giá trị, chuyển đổi] ¶[value, conversion]¶Chuyển đổi giá trị [được trả về bởi
replacement_field ::= "{" [4] được đưa ra một loại chuyển đổi [như trong bộ tuple được trả về bằng phương phápfield_name
] ["!"conversion
] [":"format_spec
] "}" field_name ::= arg_name ["."attribute_name
| "["element_index
"]"]* arg_name ::= [identifier
|digit
+] attribute_name ::=identifier
element_index ::=digit
+ |index_string
index_string ::= + conversion ::= "r" | "s" | "a" format_spec ::=
from string import Template
t = Template['$name is the $title of $company']
s = t.substitute[name='Pankaj', title='Founder', company='JournalDev.']
print[s]
1]. Phiên bản mặc định hiểu các loại chuyển đổi [STR], ‘R, [repr] và‘ A [ASCII].Định dạng Chuỗi Cú pháp
Phương pháp
replacement_field ::= "{" [6 và lớpfield_name
] ["!"conversion
] [":"format_spec
] "}" field_name ::= arg_name ["."attribute_name
| "["element_index
"]"]* arg_name ::= [identifier
|digit
+] attribute_name ::=identifier
element_index ::=digit
+ |index_string
index_string ::= + conversion ::= "r" | "s" | "a" format_spec ::=
Welcome to JournalDev
Welcome to JournalDev
0 có chung cú pháp cho các chuỗi định dạng [mặc dù trong trường hợp Welcome to JournalDev
Welcome to JournalDev
0, các lớp con có thể xác định cú pháp chuỗi định dạng của riêng chúng]. Cú pháp có liên quan đến các chữ viết được định dạng, nhưng nó kém tinh vi hơn và đặc biệt, không hỗ trợ các biểu thức tùy ý.formatted string literals, but it is less sophisticated and, in particular, does not support arbitrary expressions.Các chuỗi định dạng có chứa các trường thay thế trên mạng, được bao quanh bởi niềng răng xoăn
replacement_field ::= "{" [9. Bất cứ điều gì không chứa trong niềng răng đều được coi là văn bản theo nghĩa đen, được sao chép không thay đổi với đầu ra. Nếu bạn cần bao gồm một ký tự nẹp trong văn bản theo nghĩa đen, nó có thể được thoát ra bằng cách nhân đôi:field_name
] ["!"conversion
] [":"format_spec
] "}" field_name ::= arg_name ["."attribute_name
| "["element_index
"]"]* arg_name ::= [identifier
|digit
+] attribute_name ::=identifier
element_index ::=digit
+ |index_string
index_string ::= + conversion ::= "r" | "s" | "a" format_spec ::=
"First, thou shalt count to {0}" # References first positional argument "Bring me a {}" # Implicitly references the first positional argument "From {} to {}" # Same as "From {0} to {1}" "My quest is {name}" # References keyword argument 'name' "Weight in tons {0.weight}" # 'weight' attribute of first positional arg "Units destroyed: {players[0]}" # First element of keyword argument 'players'.0 và
"First, thou shalt count to {0}" # References first positional argument "Bring me a {}" # Implicitly references the first positional argument "From {} to {}" # Same as "From {0} to {1}" "My quest is {name}" # References keyword argument 'name' "Weight in tons {0.weight}" # 'weight' attribute of first positional arg "Units destroyed: {players[0]}" # First element of keyword argument 'players'.1.
Ngữ pháp cho một trường thay thế như sau:
replacement_field ::= "{" [field_name
] ["!"conversion
] [":"format_spec
] "}" field_name ::= arg_name ["."attribute_name
| "["element_index
"]"]* arg_name ::= [identifier
|digit
+] attribute_name ::=identifier
element_index ::=digit
+ |index_string
index_string ::= + conversion ::= "r" | "s" | "a" format_spec ::=
Trong các thuật ngữ ít chính thức hơn, trường thay thế có thể bắt đầu bằng một field_name chỉ định đối tượng có giá trị được định dạng và chèn vào đầu ra thay vì trường thay thế. Field_name được tùy chọn theo sau bởi một trường chuyển đổi, được đi trước bởi một dấu chấm than
"First, thou shalt count to {0}" # References first positional argument "Bring me a {}" # Implicitly references the first positional argument "From {} to {}" # Same as "From {0} to {1}" "My quest is {name}" # References keyword argument 'name' "Weight in tons {0.weight}" # 'weight' attribute of first positional arg "Units destroyed: {players[0]}" # First element of keyword argument 'players'.2 và một định dạng_spec, được đi trước bởi một đại tràng
"First, thou shalt count to {0}" # References first positional argument "Bring me a {}" # Implicitly references the first positional argument "From {} to {}" # Same as "From {0} to {1}" "My quest is {name}" # References keyword argument 'name' "Weight in tons {0.weight}" # 'weight' attribute of first positional arg "Units destroyed: {players[0]}" # First element of keyword argument 'players'.3. Chúng chỉ định một định dạng không mặc định cho giá trị thay thế.
Xem thêm phần Đặc tả định dạng Mini-Language.Format Specification Mini-Language section.
Field_name bắt đầu bằng một arg_name là số hoặc từ khóa. Nếu nó có một số, nó đề cập đến một đối số vị trí và nếu nó là một từ khóa, nó sẽ đề cập đến một đối số từ khóa được đặt tên. Nếu arg_names số trong chuỗi định dạng là 0, 1, 2, theo trình tự, tất cả chúng đều có thể bị bỏ qua [không chỉ một số] và các số 0, 1, 2, sẽ được tự động chèn theo thứ tự đó. Vì arg_name không được trích dẫn, nên không thể chỉ định các khóa từ điển tùy ý [ví dụ: chuỗi
"First, thou shalt count to {0}" # References first positional argument "Bring me a {}" # Implicitly references the first positional argument "From {} to {}" # Same as "From {0} to {1}" "My quest is {name}" # References keyword argument 'name' "Weight in tons {0.weight}" # 'weight' attribute of first positional arg "Units destroyed: {players[0]}" # First element of keyword argument 'players'.4 hoặc
"First, thou shalt count to {0}" # References first positional argument "Bring me a {}" # Implicitly references the first positional argument "From {} to {}" # Same as "From {0} to {1}" "My quest is {name}" # References keyword argument 'name' "Weight in tons {0.weight}" # 'weight' attribute of first positional arg "Units destroyed: {players[0]}" # First element of keyword argument 'players'.5] trong chuỗi định dạng. ARG_NAME có thể được theo sau bởi bất kỳ số lượng biểu thức chỉ mục hoặc thuộc tính nào. Một biểu thức của Mẫu
"First, thou shalt count to {0}" # References first positional argument "Bring me a {}" # Implicitly references the first positional argument "From {} to {}" # Same as "From {0} to {1}" "My quest is {name}" # References keyword argument 'name' "Weight in tons {0.weight}" # 'weight' attribute of first positional arg "Units destroyed: {players[0]}" # First element of keyword argument 'players'.6 chọn thuộc tính được đặt tên bằng cách sử dụng
from string import Template
t = Template['$name is the $title of $company']
s = t.substitute[name='Pankaj', title='Founder', company='JournalDev.']
print[s]
8, trong khi biểu thức có dạng "First, thou shalt count to {0}" # References first positional argument "Bring me a {}" # Implicitly references the first positional argument "From {} to {}" # Same as "From {0} to {1}" "My quest is {name}" # References keyword argument 'name' "Weight in tons {0.weight}" # 'weight' attribute of first positional arg "Units destroyed: {players[0]}" # First element of keyword argument 'players'.8 thực hiện tra cứu chỉ mục bằng cách sử dụng
"First, thou shalt count to {0}" # References first positional argument "Bring me a {}" # Implicitly references the first positional argument "From {} to {}" # Same as "From {0} to {1}" "My quest is {name}" # References keyword argument 'name' "Weight in tons {0.weight}" # 'weight' attribute of first positional arg "Units destroyed: {players[0]}" # First element of keyword argument 'players'.9.
Đã thay đổi trong phiên bản 3.1: Các nhà xác định đối số vị trí có thể được bỏ qua cho replacement_field ::= "{" [
6, do đó field_name
] ["!" conversion
] [":" format_spec
] "}"
field_name ::= arg_name ["." attribute_name
| "[" element_index
"]"]*
arg_name ::= [identifier
| digit
+]
attribute_name ::= identifier
element_index ::= digit
+ | index_string
index_string ::= +
conversion ::= "r" | "s" | "a"
format_spec ::=
"Harold's a clever {0!s}" # Calls str[] on the argument first
"Bring out the holy {name!r}" # Calls repr[] on the argument first
"More {!a}" # Calls ascii[] on the argument first
1 tương đương với "Harold's a clever {0!s}" # Calls str[] on the argument first
"Bring out the holy {name!r}" # Calls repr[] on the argument first
"More {!a}" # Calls ascii[] on the argument first
2.The positional
argument specifiers can be omitted for
replacement_field ::= "{" [6, sofield_name
] ["!"conversion
] [":"format_spec
] "}" field_name ::= arg_name ["."attribute_name
| "["element_index
"]"]* arg_name ::= [identifier
|digit
+] attribute_name ::=identifier
element_index ::=digit
+ |index_string
index_string ::= + conversion ::= "r" | "s" | "a" format_spec ::=
"Harold's a clever {0!s}" # Calls str[] on the argument first "Bring out the holy {name!r}" # Calls repr[] on the argument first "More {!a}" # Calls ascii[] on the argument first1 is equivalent to
"Harold's a clever {0!s}" # Calls str[] on the argument first "Bring out the holy {name!r}" # Calls repr[] on the argument first "More {!a}" # Calls ascii[] on the argument first2.
Đã thay đổi trong phiên bản 3.4: Các nhà xác định đối số vị trí có thể được bỏ qua cho
0.The positional argument specifiers can be omitted for Welcome to JournalDev
Welcome to JournalDev
Welcome to JournalDev
Welcome to JournalDev
0.Một số ví dụ chuỗi định dạng đơn giản:
"First, thou shalt count to {0}" # References first positional argument "Bring me a {}" # Implicitly references the first positional argument "From {} to {}" # Same as "From {0} to {1}" "My quest is {name}" # References keyword argument 'name' "Weight in tons {0.weight}" # 'weight' attribute of first positional arg "Units destroyed: {players[0]}" # First element of keyword argument 'players'.
Trường chuyển đổi gây ra sự ép buộc loại trước khi định dạng. Thông thường, công việc định dạng một giá trị được thực hiện bằng phương thức
"Harold's a clever {0!s}" # Calls str[] on the argument first "Bring out the holy {name!r}" # Calls repr[] on the argument first "More {!a}" # Calls ascii[] on the argument first4 của chính giá trị. Tuy nhiên, trong một số trường hợp, mong muốn buộc một loại được định dạng thành một chuỗi, ghi đè lên định nghĩa của chính nó về định dạng. Bằng cách chuyển đổi giá trị thành một chuỗi trước khi gọi
"Harold's a clever {0!s}" # Calls str[] on the argument first "Bring out the holy {name!r}" # Calls repr[] on the argument first "More {!a}" # Calls ascii[] on the argument first4, logic định dạng thông thường được bỏ qua.
Ba cờ chuyển đổi hiện đang được hỗ trợ:
"Harold's a clever {0!s}" # Calls str[] on the argument first "Bring out the holy {name!r}" # Calls repr[] on the argument first "More {!a}" # Calls ascii[] on the argument first6 gọi
"Harold's a clever {0!s}" # Calls str[] on the argument first "Bring out the holy {name!r}" # Calls repr[] on the argument first "More {!a}" # Calls ascii[] on the argument first7 trên giá trị,
"Harold's a clever {0!s}" # Calls str[] on the argument first "Bring out the holy {name!r}" # Calls repr[] on the argument first "More {!a}" # Calls ascii[] on the argument first8 gọi
"Harold's a clever {0!s}" # Calls str[] on the argument first "Bring out the holy {name!r}" # Calls repr[] on the argument first "More {!a}" # Calls ascii[] on the argument first9 và
format_spec ::= [[0 gọifill
]align
][sign
][z][#][0][width
][grouping_option
][.precision
][type
] fill ::= align ::= "" | "=" | "^" sign ::= "+" | "-" | " " width ::=digit
+ grouping_option ::= "_" | "," precision ::=digit
+ type ::= "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"
format_spec ::= [[1.fill
]align
][sign
][z][#][0][width
][grouping_option
][.precision
][type
] fill ::= align ::= "" | "=" | "^" sign ::= "+" | "-" | " " width ::=digit
+ grouping_option ::= "_" | "," precision ::=digit
+ type ::= "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"
Vài ví dụ:
"Harold's a clever {0!s}" # Calls str[] on the argument first "Bring out the holy {name!r}" # Calls repr[] on the argument first "More {!a}" # Calls ascii[] on the argument first
Trường định dạng_spec chứa một đặc điểm kỹ thuật về cách trình bày giá trị, bao gồm các chi tiết như chiều rộng trường, căn chỉnh, đệm, độ chính xác thập phân, v.v. Mỗi loại giá trị có thể xác định định dạng ngôn ngữ nhỏ của riêng mình hoặc giải thích định dạng_spec.
Hầu hết các loại tích hợp hỗ trợ một ngôn ngữ mini định dạng phổ biến, được mô tả trong phần tiếp theo.
Trường định dạng_spec cũng có thể bao gồm các trường thay thế lồng nhau trong đó. Các trường thay thế lồng nhau này có thể chứa một tên trường, cờ chuyển đổi và đặc tả định dạng, nhưng không được phép làm tổ sâu hơn. Các trường thay thế trong định dạng_spec được thay thế trước khi chuỗi định dạng_spec được giải thích. Điều này cho phép định dạng của một giá trị được chỉ định động.
Xem phần Ví dụ định dạng cho một số ví dụ.Format examples section for some examples.
Đặc điểm kỹ thuật về định dạng Mini-Language¶
Thông số kỹ thuật định dạng của Nhật Bản được sử dụng trong các trường thay thế có trong một chuỗi định dạng để xác định cách trình bày các giá trị riêng lẻ [xem Syntax String Syntax và các chuỗi chuỗi được định dạng]. Chúng cũng có thể được chuyển trực tiếp đến chức năng
from string import Formatter
formatter = Formatter[]
print[formatter.format['{website}', website='JournalDev']]
print[formatter.format['{} {website}', 'Welcome to', website='JournalDev']]
# format[] behaves in similar manner
print['{} {website}'.format['Welcome to', website='JournalDev']]
9 tích hợp. Mỗi loại có thể tạo thành có thể xác định cách giải thích đặc tả định dạng.Format String Syntax and
Formatted string literals]. They can also be passed directly to the built-in from string import Formatter
formatter = Formatter[]
print[formatter.format['{website}', website='JournalDev']]
print[formatter.format['{} {website}', 'Welcome to', website='JournalDev']]
# format[] behaves in similar manner
print['{} {website}'.format['Welcome to', website='JournalDev']]
9 function. Each formattable type may define how the format specification is to be interpreted.Hầu hết các loại tích hợp thực hiện các tùy chọn sau đây cho các thông số kỹ thuật định dạng, mặc dù một số tùy chọn định dạng chỉ được hỗ trợ bởi các loại số.
Một quy ước chung là một đặc tả định dạng trống tạo ra kết quả tương tự như khi bạn đã gọi
"Harold's a clever {0!s}" # Calls str[] on the argument first "Bring out the holy {name!r}" # Calls repr[] on the argument first "More {!a}" # Calls ascii[] on the argument first7 về giá trị. Một đặc tả định dạng không trống thường sửa đổi kết quả.
Hình thức chung của trình xác định định dạng tiêu chuẩn là:
format_spec ::= [[fill
]align
][sign
][z][#][0][width
][grouping_option
][.precision
][type
] fill ::= align ::= "" | "=" | "^" sign ::= "+" | "-" | " " width ::=digit
+ grouping_option ::= "_" | "," precision ::=digit
+ type ::= "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"
Nếu một giá trị căn chỉnh hợp lệ được chỉ định, nó có thể được đi trước bởi một ký tự điền có thể là bất kỳ ký tự và mặc định nào đối với một không gian nếu bị bỏ qua. Không thể sử dụng niềng răng xoăn theo nghĩa đen [____ ____994, hoặc ____ ____95,] làm ký tự điền theo nghĩa đen được định dạng hoặc khi sử dụng phương pháp
replacement_field ::= "{" [6. Tuy nhiên, có thể chèn một nẹp xoăn với một trường thay thế lồng nhau. Giới hạn này không ảnh hưởng đến chức năngfield_name
] ["!"conversion
] [":"format_spec
] "}" field_name ::= arg_name ["."attribute_name
| "["element_index
"]"]* arg_name ::= [identifier
|digit
+] attribute_name ::=identifier
element_index ::=digit
+ |index_string
index_string ::= + conversion ::= "r" | "s" | "a" format_spec ::=
from string import Formatter
formatter = Formatter[]
print[formatter.format['{website}', website='JournalDev']]
print[formatter.format['{} {website}', 'Welcome to', website='JournalDev']]
# format[] behaves in similar manner
print['{} {website}'.format['Welcome to', website='JournalDev']]
9.formatted string literal or when using the replacement_field ::= "{" [6 method. However, it is possible to insert a curly brace with a nested replacement field. This limitation doesn’t affect thefield_name
] ["!"conversion
] [":"format_spec
] "}" field_name ::= arg_name ["."attribute_name
| "["element_index
"]"]* arg_name ::= [identifier
|digit
+] attribute_name ::=identifier
element_index ::=digit
+ |index_string
index_string ::= + conversion ::= "r" | "s" | "a" format_spec ::=
from string import Formatter
formatter = Formatter[]
print[formatter.format['{website}', website='JournalDev']]
print[formatter.format['{} {website}', 'Welcome to', website='JournalDev']]
# format[] behaves in similar manner
print['{} {website}'.format['Welcome to', website='JournalDev']]
9 function.Ý nghĩa của các tùy chọn căn chỉnh khác nhau như sau:
Quyền mua
Nghĩa
format_spec ::= [[8fill
]align
][sign
][z][#][0][width
][grouping_option
][.precision
][type
] fill ::= align ::= "" | "=" | "^" sign ::= "+" | "-" | " " width ::=digit
+ grouping_option ::= "_" | "," precision ::=digit
+ type ::= "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"Buộc trường phải được liên kết trái trong không gian có sẵn [đây là mặc định cho hầu hết các đối tượng].
format_spec ::= [[9fill
]align
][sign
][z][#][0][width
][grouping_option
][.precision
][type
] fill ::= align ::= "" | "=" | "^" sign ::= "+" | "-" | " " width ::=digit
+ grouping_option ::= "_" | "," precision ::=digit
+ type ::= "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"Buộc trường phải được liên kết đúng trong không gian có sẵn [đây là mặc định cho các số].
00abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
Buộc các phần đệm được đặt sau dấu hiệu [nếu có] nhưng trước các chữ số. Điều này được sử dụng để in các trường trong mẫu ‘+000000120. Tùy chọn căn chỉnh này chỉ có giá trị cho các loại số. Nó trở thành mặc định cho các số khi ‘0, ngay trước chiều rộng trường.
01abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
Buộc các lĩnh vực phải được tập trung trong không gian có sẵn.
Lưu ý rằng trừ khi chiều rộng trường tối thiểu được xác định, chiều rộng trường sẽ luôn có cùng kích thước với dữ liệu để điền vào nó, do đó tùy chọn căn chỉnh không có ý nghĩa trong trường hợp này.
Tùy chọn dấu hiệu chỉ hợp lệ cho các loại số và có thể là một trong những điều sau đây:
Quyền mua
Nghĩa
02abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
Buộc trường phải được liên kết trái trong không gian có sẵn [đây là mặc định cho hầu hết các đối tượng].
03abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
Buộc trường phải được liên kết đúng trong không gian có sẵn [đây là mặc định cho các số].
Buộc các phần đệm được đặt sau dấu hiệu [nếu có] nhưng trước các chữ số. Điều này được sử dụng để in các trường trong mẫu ‘+000000120. Tùy chọn căn chỉnh này chỉ có giá trị cho các loại số. Nó trở thành mặc định cho các số khi ‘0, ngay trước chiều rộng trường.
Buộc các lĩnh vực phải được tập trung trong không gian có sẵn.
Lưu ý rằng trừ khi chiều rộng trường tối thiểu được xác định, chiều rộng trường sẽ luôn có cùng kích thước với dữ liệu để điền vào nó, do đó tùy chọn căn chỉnh không có ý nghĩa trong trường hợp này.
Tùy chọn dấu hiệu chỉ hợp lệ cho các loại số và có thể là một trong những điều sau đây:Added the
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefABCDEF
!"#$%&'[]*+,-./:;?@[\]^_`{|}~
04 option [see also PEP 682].chỉ ra rằng một dấu hiệu nên được sử dụng cho cả số dương cũng như số âm.
chỉ ra rằng một dấu hiệu chỉ nên được sử dụng cho các số âm [đây là hành vi mặc định].
không gianAdded the
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefABCDEF
!"#$%&'[]*+,-./:;?@[\]^_`{|}~
13 option [see also
PEP 378].chỉ ra rằng một không gian hàng đầu nên được sử dụng trên các số dương và dấu trừ trên các số âm.
Tùy chọn
04 ép buộc các giá trị dấu phẩy động bằng 0 tiêu cực về 0 dương sau khi làm tròn vào độ chính xác định dạng. Tùy chọn này chỉ có giá trị cho các loại trình bày dấu phẩy động.Added the abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefABCDEF
!"#$%&'[]*+,-./:;?@[\]^_`{|}~
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefABCDEF
!"#$%&'[]*+,-./:;?@[\]^_`{|}~
16 option [see also PEP 515].Đã thay đổi trong phiên bản 3.11: Đã thêm tùy chọn
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefABCDEF
!"#$%&'[]*+,-./:;?@[\]^_`{|}~
04 [xem thêm PEP 682].Tùy chọn
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefABCDEF
!"#$%&'[]*+,-./:;?@[\]^_`{|}~
06 làm cho hình thức thay thế trên mạng được sử dụng để chuyển đổi. Hình thức thay thế được xác định khác nhau cho các loại khác nhau. Tùy chọn này chỉ hợp lệ cho các loại số nguyên, phao và phức tạp. Đối với các số nguyên, khi đầu ra nhị phân, bát phân hoặc thập lục phân được sử dụng, tùy chọn này thêm tiền tố tương ứng abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefABCDEF
!"#$%&'[]*+,-./:;?@[\]^_`{|}~
07, abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefABCDEF
!"#$%&'[]*+,-./:;?@[\]^_`{|}~
08, abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefABCDEF
!"#$%&'[]*+,-./:;?@[\]^_`{|}~
09 hoặc abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefABCDEF
!"#$%&'[]*+,-./:;?@[\]^_`{|}~
10 vào giá trị đầu ra. Đối với float và phức tạp, dạng thay thế gây ra kết quả của quá trình chuyển đổi luôn chứa một ký tự điểm thập phân, ngay cả khi không có chữ số nào tuân theo nó. Thông thường, một ký tự điểm thập phân xuất hiện trong kết quả của các chuyển đổi này chỉ khi một chữ số theo nó. Ngoài ra, đối với các chuyển đổi abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefABCDEF
!"#$%&'[]*+,-./:;?@[\]^_`{|}~
11 và abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefABCDEF
!"#$%&'[]*+,-./:;?@[\]^_`{|}~
12, các số không kéo dài không bị xóa khỏi kết quả.Tùy chọn
13 báo hiệu việc sử dụng dấu phẩy cho hàng ngàn người. Đối với một dấu phân cách nhận biết địa phương, thay vào đó hãy sử dụng loại trình bày số nguyên abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefABCDEF
!"#$%&'[]*+,-./:;?@[\]^_`{|}~
14.Preceding the width field by abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefABCDEF
!"#$%&'[]*+,-./:;?@[\]^_`{|}~
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefABCDEF
!"#$%&'[]*+,-./:;?@[\]^_`{|}~
23 no longer affects the default alignment for strings.Đã thay đổi trong phiên bản 3.1: Đã thêm tùy chọn
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefABCDEF
!"#$%&'[]*+,-./:;?@[\]^_`{|}~
13 [xem thêm PEP 378].Tùy chọn
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefABCDEF
!"#$%&'[]*+,-./:;?@[\]^_`{|}~
16 báo hiệu việc sử dụng dấu gạch dưới cho hàng ngàn người phân tách cho các loại trình bày điểm nổi và cho loại trình bày số nguyên abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefABCDEF
!"#$%&'[]*+,-./:;?@[\]^_`{|}~
17. Đối với các loại trình bày số nguyên abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefABCDEF
!"#$%&'[]*+,-./:;?@[\]^_`{|}~
18, abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefABCDEF
!"#$%&'[]*+,-./:;?@[\]^_`{|}~
19, abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefABCDEF
!"#$%&'[]*+,-./:;?@[\]^_`{|}~
20 và abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefABCDEF
!"#$%&'[]*+,-./:;?@[\]^_`{|}~
21, gạch dưới sẽ được chèn vào mỗi 4 chữ số. Đối với các loại trình bày khác, chỉ định tùy chọn này là một lỗi.Đã thay đổi trong phiên bản 3.6: Đã thêm tùy chọn
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefABCDEF
!"#$%&'[]*+,-./:;?@[\]^_`{|}~
16 [xem thêm PEP 515].
Chiều rộng là một số nguyên thập phân xác định tổng chiều rộng trường tối thiểu, bao gồm mọi tiền tố, dấu phân cách và các ký tự định dạng khác. Nếu không được chỉ định, thì chiều rộng trường sẽ được xác định bởi nội dung.
Nghĩa
31abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
Khi không có sự liên kết rõ ràng được đưa ra, trước trường chiều rộng bằng ký tự bằng 0 [
23] cho phép nhận biết dấu hiệu không có dấu hiệu cho các loại số. Điều này tương đương với ký tự điền củaabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
23 với loại căn chỉnh làabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
00.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
Đã thay đổi trong phiên bản 3.10: Trước trường chiều rộng bằng
23 không còn ảnh hưởng đến căn chỉnh mặc định cho các chuỗi.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
Độ chính xác là một số nguyên thập phân cho thấy có bao nhiêu chữ số nên được hiển thị sau điểm thập phân cho các loại trình bày
27 vàabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
28, hoặc trước và sau điểm thập phân cho các loại trình bàyabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
11 hoặcabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
12. Đối với các loại trình bày chuỗi, trường chỉ ra kích thước trường tối đa - nói cách khác, có bao nhiêu ký tự sẽ được sử dụng từ nội dung trường. Độ chính xác không được phép cho các loại trình bày số nguyên.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
Cuối cùng, loại xác định cách trình bày dữ liệu.
Chiều rộng là một số nguyên thập phân xác định tổng chiều rộng trường tối thiểu, bao gồm mọi tiền tố, dấu phân cách và các ký tự định dạng khác. Nếu không được chỉ định, thì chiều rộng trường sẽ được xác định bởi nội dung.
Nghĩa
18abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
Khi không có sự liên kết rõ ràng được đưa ra, trước trường chiều rộng bằng ký tự bằng 0 [
23] cho phép nhận biết dấu hiệu không có dấu hiệu cho các loại số. Điều này tương đương với ký tự điền củaabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
23 với loại căn chỉnh làabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
00.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
34abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
Đã thay đổi trong phiên bản 3.10: Trước trường chiều rộng bằng
23 không còn ảnh hưởng đến căn chỉnh mặc định cho các chuỗi.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
17abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
Độ chính xác là một số nguyên thập phân cho thấy có bao nhiêu chữ số nên được hiển thị sau điểm thập phân cho các loại trình bày
27 vàabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
28, hoặc trước và sau điểm thập phân cho các loại trình bàyabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
11 hoặcabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
12. Đối với các loại trình bày chuỗi, trường chỉ ra kích thước trường tối đa - nói cách khác, có bao nhiêu ký tự sẽ được sử dụng từ nội dung trường. Độ chính xác không được phép cho các loại trình bày số nguyên.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
19abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
Cuối cùng, loại xác định cách trình bày dữ liệu.
20abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
Các loại trình bày chuỗi có sẵn là:
21abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
Định dạng hex. Đầu ra số lượng trong cơ sở 16, sử dụng các chữ cái trong trường hợp trên cho các chữ số trên 9. Trong trường hợp
06 được chỉ định, tiền tốabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
09 cũng sẽ được gắn trênabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
10.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
14abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
Con số. Điều này giống như
17, ngoại trừ việc nó sử dụng cài đặt ngôn ngữ hiện tại để chèn các ký tự phân tách số thích hợp.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
Không có
Giống như
17.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
Ngoài các loại trình bày trên, các số nguyên có thể được định dạng với các loại trình bày điểm nổi được liệt kê dưới đây [ngoại trừ
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefABCDEF
!"#$%&'[]*+,-./:;?@[\]^_`{|}~
14 và from string import Template
t = Template['$name is the $title of $company']
s = t.substitute[name='Pankaj', title='Founder', company='JournalDev.']
print[s]
0]. Khi làm như vậy, abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefABCDEF
!"#$%&'[]*+,-./:;?@[\]^_`{|}~
47 được sử dụng để chuyển đổi số nguyên thành số điểm nổi trước khi định dạng.Các loại trình bày có sẵn cho các giá trị
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefABCDEF
!"#$%&'[]*+,-./:;?@[\]^_`{|}~
48 và abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefABCDEF
!"#$%&'[]*+,-./:;?@[\]^_`{|}~
49 là:
Loại hình
Nghĩa
50abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
Ký hiệu khoa học. Đối với một độ chính xác nhất định
51, các định dạng số trong ký hiệu khoa học với chữ cái ‘E, tách hệ số với số mũ. Hệ số có một chữ số trước vàabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
51 chữ số sau điểm thập phân, với tổng số các chữ số quan trọngabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
53. Không có độ chính xác, sử dụng độ chính xác củaabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
54 chữ số sau điểm thập phân choabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
48 và hiển thị tất cả các chữ số hệ số choabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
49. Nếu không có chữ số nào tuân theo điểm thập phân, điểm thập phân cũng được xóa trừ khi tùy chọnabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
57 được sử dụng.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
58abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
Ký hiệu khoa học. Giống như
50 ngoại trừ nó sử dụng một trường hợp trên ‘E, làm ký tự phân tách.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
27abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
Ký hiệu điểm cố định. Đối với một độ chính xác nhất định
51, định dạng số là số thập phân với chính xácabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
51 chữ số theo điểm thập phân. Không có độ chính xác nào, sử dụng độ chính xác làabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
54 chữ số sau điểm thập phân choabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
48 và sử dụng độ chính xác đủ lớn để hiển thị tất cả các chữ số hệ số choabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
49. Nếu không có chữ số nào tuân theo điểm thập phân, điểm thập phân cũng được xóa trừ khi tùy chọnabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
57 được sử dụng.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
28abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
Ký hiệu điểm cố định. Giống như
27, nhưng chuyển đổiabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
69 thànhabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
70 vàabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
71 thànhabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
72.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
11abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
Định dạng chung. Đối với một độ chính xác nhất định
74, điều này làm tròn con số đếnabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
51 Các chữ số quan trọng và sau đó định dạng kết quả ở định dạng điểm cố định hoặc trong ký hiệu khoa học, tùy thuộc vào độ lớn của nó. Độ chính xác củaabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
76 được coi là tương đương với độ chính xác củaabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
77.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
Các quy tắc chính xác như sau: Giả sử kết quả được định dạng với loại trình bày
50 và độ chính xácabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
79 sẽ có số mũabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
80. Sau đó, nếuabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
81, trong đóabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
82 là -4 cho phao và -6 choabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
83, số được định dạng với loại trình bàyabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
27 và chính xácabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
85. Mặt khác, số được định dạng với loại trình bàyabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
50 và độ chính xácabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
79. Trong cả hai trường hợp, các số không có dấu vết không đáng kể được loại bỏ khỏi ý nghĩa và điểm thập phân cũng được loại bỏ nếu không có chữ số nào còn lại theo nó, trừ khi tùy chọn ____106 được sử dụng.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
Không có độ chính xác, sử dụng độ chính xác của
54 chữ số quan trọng choabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
48. Đối vớiabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
49, hệ số của kết quả được hình thành từ các chữ số hệ số của giá trị; Ký hiệu khoa học được sử dụng cho các giá trị nhỏ hơnabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
92 về giá trị và giá trị tuyệt đối trong đó giá trị vị trí của chữ số ít có ý nghĩa nhất lớn hơn 1 và ký hiệu điểm cố định được sử dụng khác.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
Vô cực tích cực và tiêu cực, số 0 dương và âm, và NAN, được định dạng là
71,abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
94,abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
76,abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
96 vàabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
69, bất kể độ chính xác.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
12abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
Định dạng chung. Giống như
11 ngoại trừ chuyển sangabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
58 nếu số quá lớn. Các đại diện của Infinity và Nan cũng được sử dụng.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
14abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
Con số. Điều này giống như
11, ngoại trừ việc nó sử dụng cài đặt ngôn ngữ hiện tại để chèn các ký tự phân tách số thích hợp.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
03s = ' Welcome TO \n\n JournalDev ' print[string.capwords[s]]
Tỷ lệ phần trăm. Nhân số lượng với 100 và hiển thị ở định dạng cố định [
27], theo sau là dấu phần trăm.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
Không có
Giống như
17.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
Ngoài các loại trình bày trên, các số nguyên có thể được định dạng với các loại trình bày điểm nổi được liệt kê dưới đây [ngoại trừ
14 vàabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
0]. Khi làm như vậy,from string import Template t = Template['$name is the $title of $company'] s = t.substitute[name='Pankaj', title='Founder', company='JournalDev.'] print[s]
47 được sử dụng để chuyển đổi số nguyên thành số điểm nổi trước khi định dạng.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
Các loại trình bày có sẵn cho các giá trị
48 vàabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
49 là:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefABCDEF !"#$%&'[]*+,-./:;?@[\]^_`{|}~
Loại hình
Phần này chứa các ví dụ về cú pháp
replacement_field ::= "{" [6 và so sánh với định dạng ____ ____ 213 cũ.field_name
] ["!"conversion
] [":"format_spec
] "}" field_name ::= arg_name ["."attribute_name
| "["element_index
"]"]* arg_name ::= [identifier
|digit
+] attribute_name ::=identifier
element_index ::=digit
+ |index_string
index_string ::= + conversion ::= "r" | "s" | "a" format_spec ::=
Trong hầu hết các trường hợp, cú pháp tương tự như định dạng ____ 213 cũ, với việc bổ sung
replacement_field ::= "{" [9 và vớifield_name
] ["!"conversion
] [":"format_spec
] "}" field_name ::= arg_name ["."attribute_name
| "["element_index
"]"]* arg_name ::= [identifier
|digit
+] attribute_name ::=identifier
element_index ::=digit
+ |index_string
index_string ::= + conversion ::= "r" | "s" | "a" format_spec ::=
s = ' Welcome TO \n\n JournalDev '
print[string.capwords[s]]
16 được sử dụng thay vì s = ' Welcome TO \n\n JournalDev '
print[string.capwords[s]]
13. Ví dụ, s = ' Welcome TO \n\n JournalDev '
print[string.capwords[s]]
18 có thể được dịch thành s = ' Welcome TO \n\n JournalDev '
print[string.capwords[s]]
19.Cú pháp định dạng mới cũng hỗ trợ các tùy chọn mới và khác nhau, được hiển thị trong các ví dụ sau.
Truy cập các đối số theo vị trí:
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefABCDEF
!"#$%&'[]*+,-./:;?@[\]^_`{|}~
0Truy cập các đối số theo tên:
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefABCDEF
!"#$%&'[]*+,-./:;?@[\]^_`{|}~
1Truy cập các thuộc tính của đối số:
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefABCDEF
!"#$%&'[]*+,-./:;?@[\]^_`{|}~
2Truy cập các mục đối số của các mục:
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefABCDEF
!"#$%&'[]*+,-./:;?@[\]^_`{|}~
3Thay thế
s = ' Welcome TO \n\n JournalDev '
print[string.capwords[s]]
20 và s = ' Welcome TO \n\n JournalDev '
print[string.capwords[s]]
21:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefABCDEF
!"#$%&'[]*+,-./:;?@[\]^_`{|}~
4Căn chỉnh văn bản và chỉ định chiều rộng:
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefABCDEF
!"#$%&'[]*+,-./:;?@[\]^_`{|}~
5Thay thế
s = ' Welcome TO \n\n JournalDev '
print[string.capwords[s]]
22, s = ' Welcome TO \n\n JournalDev '
print[string.capwords[s]]
23 và s = ' Welcome TO \n\n JournalDev '
print[string.capwords[s]]
24 và chỉ định một dấu hiệu:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefABCDEF
!"#$%&'[]*+,-./:;?@[\]^_`{|}~
6Thay thế
s = ' Welcome TO \n\n JournalDev '
print[string.capwords[s]]
25 và s = ' Welcome TO \n\n JournalDev '
print[string.capwords[s]]
26 và chuyển đổi giá trị thành các cơ sở khác nhau:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefABCDEF
!"#$%&'[]*+,-./:;?@[\]^_`{|}~
7Sử dụng dấu phẩy làm dấu phân cách hàng ngàn:
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefABCDEF
!"#$%&'[]*+,-./:;?@[\]^_`{|}~
8Thể hiện tỷ lệ phần trăm:
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefABCDEF
!"#$%&'[]*+,-./:;?@[\]^_`{|}~
9Sử dụng định dạng cụ thể loại:
s = ' Welcome TO \n\n JournalDev '
print[string.capwords[s]]
0Đối số làm tổ và các ví dụ phức tạp hơn:
s = ' Welcome TO \n\n JournalDev '
print[string.capwords[s]]
1Chuỗi mẫu
Các chuỗi mẫu cung cấp các thay thế chuỗi đơn giản hơn như được mô tả trong PEP 292. Một trường hợp sử dụng chính cho chuỗi mẫu là để quốc tế hóa [I18N] vì trong bối cảnh đó, cú pháp và chức năng đơn giản hơn giúp dịch dễ dàng hơn các cơ sở định dạng chuỗi tích hợp khác trong Python . Như một ví dụ về thư viện được xây dựng trên chuỗi mẫu cho i18n, hãy xem gói flufl.i18n.PEP 292. A primary use case for template strings is for internationalization [i18n] since in that context, the simpler syntax and functionality makes it easier to translate than other built-in string formatting facilities in Python. As an example of a library built on template strings for i18n, see the flufl.i18n package.
Chuỗi mẫu hỗ trợ thay thế dựa trên 227, sử dụng các quy tắc sau:
-
28 là một lối thoát; Nó được thay thế bằng mộts = ' Welcome TO \n\n JournalDev ' print[string.capwords[s]]
27.s = ' Welcome TO \n\n JournalDev ' print[string.capwords[s]]
30 Đặt tên cho một trình giữ chỗ thay thế phù hợp với khóa ánh xạ củas = ' Welcome TO \n\n JournalDev ' print[string.capwords[s]]
31. Theo mặc định,s = ' Welcome TO \n\n JournalDev ' print[string.capwords[s]]
31 bị giới hạn trong bất kỳ chuỗi chữ và số khác không nhạy cảm với trường hợp [bao gồm cả dấu gạch dưới] bắt đầu bằng chữ dấu gạch dưới hoặc ASCII. Nhân vật không nhận dạng đầu tiên sau khi ký tựs = ' Welcome TO \n\n JournalDev ' print[string.capwords[s]]
27 chấm dứt đặc điểm kỹ thuật giữ chỗ này.s = ' Welcome TO \n\n JournalDev ' print[string.capwords[s]]
34 tương đương vớis = ' Welcome TO \n\n JournalDev ' print[string.capwords[s]]
30. Nó được yêu cầu khi các ký tự định danh hợp lệ tuân theo trình giữ chỗ nhưng không phải là một phần của trình giữ chỗ, chẳng hạn nhưs = ' Welcome TO \n\n JournalDev ' print[string.capwords[s]]
36.s = ' Welcome TO \n\n JournalDev ' print[string.capwords[s]]
Bất kỳ sự xuất hiện nào khác của
s = ' Welcome TO \n\n JournalDev '
print[string.capwords[s]]
27 trong chuỗi sẽ dẫn đến một s = ' Welcome TO \n\n JournalDev '
print[string.capwords[s]]
38 được nâng lên.Mô -đun
Welcome to JournalDev
Welcome to JournalDev
1 cung cấp một lớp s = ' Welcome TO \n\n JournalDev '
print[string.capwords[s]]
40 thực hiện các quy tắc này. Các phương pháp của s = ' Welcome TO \n\n JournalDev '
print[string.capwords[s]]
40 là: classString.template [mẫu] ¶
string.Template[template]¶Trình xây dựng lấy một đối số duy nhất là chuỗi mẫu.
thay thế [ánh xạ = {}, /, ** kwds] ¶[mapping={}, /, **kwds]¶Thực hiện thay thế mẫu, trả về một chuỗi mới. Ánh xạ là bất kỳ đối tượng giống như từ điển nào với các khóa phù hợp với trình giữ chỗ trong mẫu. Ngoài ra, bạn có thể cung cấp các đối số từ khóa, trong đó các từ khóa là người giữ chỗ. Khi cả bản đồ và KWD được đưa ra và có những bản sao, các giữ chỗ từ KWD được ưu tiên.
an toàn_subst acad [ánh xạ = {}, /, ** kwds] ¶[mapping={}, /, **kwds]¶Giống như
s = ' Welcome TO \n\n JournalDev '
print[string.capwords[s]]
42, ngoại trừ nếu người giữ chỗ bị thiếu từ ánh xạ và KWD, thay vì tăng ngoại lệ replacement_field ::= "{" [0, trình giữ chỗ ban đầu sẽ xuất hiện trong chuỗi kết quả nguyên vẹn. Ngoài ra, không giống như vớifield_name
] ["!"conversion
] [":"format_spec
] "}" field_name ::= arg_name ["."attribute_name
| "["element_index
"]"]* arg_name ::= [identifier
|digit
+] attribute_name ::=identifier
element_index ::=digit
+ |index_string
index_string ::= + conversion ::= "r" | "s" | "a" format_spec ::=
s = ' Welcome TO \n\n JournalDev '
print[string.capwords[s]]
42, bất kỳ sự xuất hiện nào khác của s = ' Welcome TO \n\n JournalDev '
print[string.capwords[s]]
27 sẽ chỉ đơn giản là trả lại s = ' Welcome TO \n\n JournalDev '
print[string.capwords[s]]
27 thay vì tăng s = ' Welcome TO \n\n JournalDev '
print[string.capwords[s]]
38.Mặc dù các trường hợp ngoại lệ khác vẫn có thể xảy ra, phương pháp này được gọi là an toàn vì nó luôn cố gắng trả về một chuỗi có thể sử dụng thay vì tăng ngoại lệ. Theo một nghĩa khác,
s = ' Welcome TO \n\n JournalDev '
print[string.capwords[s]]
48 có thể là bất cứ điều gì khác ngoài an toàn, vì nó sẽ âm thầm bỏ qua các mẫu có hình dạng có chứa các phân định lơ lửng, niềng răng chưa từng có hoặc các trình giữ chỗ không phải là định danh python hợp lệ. is_valid [] ¶[]¶Trả về sai nếu mẫu có trình giữ chỗ không hợp lệ sẽ khiến
s = ' Welcome TO \n\n JournalDev '
print[string.capwords[s]]
42 tăng s = ' Welcome TO \n\n JournalDev '
print[string.capwords[s]]
38.Mới trong phiên bản 3.11.
get_identifiers [] ¶[]¶Trả về một danh sách các định danh hợp lệ trong mẫu, theo thứ tự chúng xuất hiện lần đầu tiên, bỏ qua bất kỳ định danh không hợp lệ nào.
Mới trong phiên bản 3.11.
get_identifiers [] ¶
Trả về một danh sách các định danh hợp lệ trong mẫu, theo thứ tự chúng xuất hiện lần đầu tiên, bỏ qua bất kỳ định danh không hợp lệ nào.¶Các phiên bản
s = ' Welcome TO \n\n JournalDev '
print[string.capwords[s]]
40 cũng cung cấp một thuộc tính dữ liệu công khai:mẫu¶
s = ' Welcome TO \n\n JournalDev '
print[string.capwords[s]]
2Đây là đối tượng được truyền đến đối số mẫu của Constructor. Nói chung, bạn không nên thay đổi nó, nhưng quyền truy cập chỉ đọc không được thực thi.
Dưới đây là một ví dụ về cách sử dụng một mẫu:
IDPOTYN-Đây là biểu thức chính quy mô tả mẫu cho người giữ chỗ không thuận tay. Giá trị mặc định là biểu thức thông thường
55. Nếu điều này được đưa ra và BraceIdPotype làs = ' Welcome TO \n\n JournalDev ' print[string.capwords[s]]
0, mô hình này cũng sẽ áp dụng cho các trình giữ chỗ giằng.from string import Template t = Template['$name is the $title of $company'] s = t.substitute[name='Pankaj', title='Founder', company='JournalDev.'] print[s]
Ghi chú
Vì các cờ mặc định là
57, mẫus = ' Welcome TO \n\n JournalDev ' print[string.capwords[s]]
58 có thể khớp với một số ký tự không phải ASCII. Đó là lý do tại sao chúng tôi sử dụng cờs = ' Welcome TO \n\n JournalDev ' print[string.capwords[s]]
59 địa phương ở đây.s = ' Welcome TO \n\n JournalDev ' print[string.capwords[s]]
Đã thay đổi trong phiên bản 3.7: BraceIdPattern có thể được sử dụng để xác định các mẫu riêng biệt được sử dụng bên trong và bên ngoài niềng răng.braceidpattern can be used to define separate patterns used inside and outside the braces.
BraceIdPotype - Điều này giống như idpattern nhưng mô tả mô hình cho các trình giữ chỗ giằng. Mặc định là
0 có nghĩa là rơi trở lại idpattern [nghĩa là cùng một mẫu được sử dụng cả niềng răng bên trong và bên ngoài]. Nếu được đưa ra, điều này cho phép bạn xác định các mẫu khác nhau cho các chỗ giữ chỗ giằng và không thay đổi.from string import Template t = Template['$name is the $title of $company'] s = t.substitute[name='Pankaj', title='Founder', company='JournalDev.'] print[s]
Mới trong phiên bản 3.7.
Cờ - Các cờ biểu thức chính quy sẽ được áp dụng khi biên dịch biểu thức chính quy được sử dụng để nhận biết các thay thế. Giá trị mặc định là
57. Lưu ý rằngs = ' Welcome TO \n\n JournalDev ' print[string.capwords[s]]
62 sẽ luôn được thêm vào các lá cờ, vì vậy các idpattern tùy chỉnh phải tuân theo các quy ước cho các biểu thức chính quy verbose.s = ' Welcome TO \n\n JournalDev ' print[string.capwords[s]]
Mới trong phiên bản 3.2.
Ngoài ra, bạn có thể cung cấp toàn bộ mẫu biểu thức chính quy bằng cách ghi đè mẫu thuộc tính lớp. Nếu bạn làm điều này, giá trị phải là một đối tượng biểu thức chính quy với bốn nhóm chụp được đặt tên. Các nhóm bắt giữ tương ứng với các quy tắc được đưa ra ở trên, cùng với quy tắc giữ chỗ không hợp lệ:
Thoát khỏi - Nhóm này phù hợp với chuỗi thoát, ví dụ:
28, trong mẫu mặc định.s = ' Welcome TO \n\n JournalDev ' print[string.capwords[s]]
Được đặt tên - Nhóm này phù hợp với tên giữ chỗ không có mặt; Nó không nên bao gồm các dấu phân cách trong nhóm chụp.
BRACED - Nhóm này phù hợp với tên giữ chỗ kín nẹp; Nó không nên bao gồm các dấu phân cách hoặc niềng răng trong nhóm bắt giữ.
Không hợp lệ - Nhóm này phù hợp với bất kỳ mẫu phân cách nào khác [thường là một dấu phân cách duy nhất] và nó sẽ xuất hiện cuối cùng trong biểu thức chính quy.
Các phương thức trên lớp này sẽ tăng
s = ' Welcome TO \n\n JournalDev '
print[string.capwords[s]]
38 nếu mẫu khớp với mẫu mà không có một trong các nhóm được đặt tên phù hợp.Chức năng của người trợ giúp
String.capwords [s, sep = none] ¶capwords[s, sep=None]¶Chia đối số thành các từ bằng cách sử dụng
s = ' Welcome TO \n\n JournalDev '
print[string.capwords[s]]
65, viết hoa mỗi từ bằng cách sử dụng s = ' Welcome TO \n\n JournalDev '
print[string.capwords[s]]
66 và tham gia các từ được viết hoa bằng cách sử dụng s = ' Welcome TO \n\n JournalDev '
print[string.capwords[s]]
67. Nếu đối số thứ hai tùy chọn SEP không có hoặc from string import Template
t = Template['$name is the $title of $company']
s = t.substitute[name='Pankaj', title='Founder', company='JournalDev.']
print[s]
0, thì các ký tự khoảng trắng sẽ được thay thế bằng một không gian duy nhất và khoảng trắng dẫn đầu và dấu vết được loại bỏ, nếu không, SEP được sử dụng để chia và tham gia các từ.