chuỗi – Các hoạt động chuỗi phổ biến – Tài liệu Python 3.10.5 – chuỗi định dạng python 3

Bạn đang xem : Chuỗi định dạng python 3

Mã nguồn: Lib / string.py

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 khoảng cách ký tự, tab, dòng cấp dữ liệu, trả về, nguồn cấp dữ liệu định dạng và tab dọc.

Chuỗi ký tự ASCII được coi là có thể in được. Đây là sự kết hợp của các chữ số, ascii_letters, dấu câu và khoảng trắng.

Chuỗi ký tự ASCII được coi là ký tự dấu câu trong ngôn ngữ C:! “# $% & Amp; ‘() * +, -. /:; & lt; = & gt;? @ [\] ^ _ `{|} ~.

Các chữ cái viết hoa ‘ABCDEFGHIJKLMNOPQRSTUVWXYZ’. Giá trị này không phụ thuộc vào ngôn ngữ và sẽ không thay đổi.

Các chữ cái viết thường ‘abcdefghijklmnopqrstuvwxyz’. Giá trị này không phụ thuộc vào ngôn ngữ và sẽ không thay đổi.

Việc ghép các hằng số ascii_lowercase và ascii_uppercase được mô tả bên dưới. Giá trị này không phụ thuộc vào ngôn ngữ. < / p>

Chuyển đổi giá trị (được trả về bởi get_field ()) đã cho một kiểu chuyển đổi (như trong bộ giá trị được trả về bởi phương thức parse ()). Phiên bản mặc định hiểu ‘s’ (str), ‘r’ (repr ) và kiểu chuyển đổi ‘a’ (ascii).

format_field () chỉ cần gọi định dạng toàn cục () được tích hợp sẵn. Phương thức này được cung cấp để các lớp con có thể ghi đè nó.

Triển khai kiểm tra các đối số không sử dụng nếu muốn. Các đối số cho trò vui này ction là tập hợp tất cả các khóa đối số thực sự được tham chiếu đến trong chuỗi định dạng (số nguyên cho các đối số vị trí và chuỗi cho các đối số được đặt tên) và một tham chiếu đến các args và kwargs đã được chuyển tới vformat. Tập hợp các args không sử dụng có thể được tính toán từ các tham số này. check_unused_args () được giả định là tăng một ngoại lệ nếu kiểm tra không thành công.

Nếu chỉ mục hoặc từ khóa đề cập đến một mục không tồn tại, thì một IndexError hoặc KeyError sẽ được đưa ra.

Vì vậy, ví dụ: biểu thức trường ‘0.name’ sẽ khiến get_value () được gọi với đối số chính là 0. Thuộc tính name sẽ được tra cứu sau khi get_value () trả về bằng cách gọi hàm getattr () tích hợp sẵn .

Đối với tên trường ghép, các hàm 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 thao tác lập chỉ mục và thuộc tính bình thường.

Tham số args được đặt thành danh sách các đối số vị trí thành vformat () và tham số kwargs được đặt thành từ điển các đối số từ khóa.

Lấy một giá trị trường nhất định. Đối số khóa 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 nó là một chuỗi, thì nó đại diện cho một đối số được đặt tên trong kwargs.

Cho field_name như được trả về bởi parse () (xem ở trên), hãy chuyển nó thành một đối tượng cần được định dạng. Trả về một bộ giá trị (obj, used_key). Phiên bản mặc định lấy các chuỗi có dạng được xác định trong PEP 3101, chẳng hạn như “0 [name]” hoặc “label.title”. args và kwargs được chuyển vào vformat (). Giá trị trả về used_key có cùng ý nghĩa với tham số khóa của get_value ().

Các giá trị trong bộ giá trị về mặt khái niệm đại diện cho một khoảng văn bản theo sau bởi một trường thay thế. 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ì văn bản đen 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à Không có.

Lặp lại format_string và trả về một giá trị có thể lặp lại của các bộ giá trị (đen_text, field_name, format_spec, chuyển đổi). Điều này được vformat () sử dụng để ngắt chuỗi thành văn bản chữ hoặc các trường thay thế.

Ngoài ra, Formatter xác định một số phương thức được dự định sẽ được thay thế bằng các lớp con:

Hàm này thực hiện công việc định dạng thực tế. Nó được hiển thị như một hàm riêng biệt cho các trường hợp bạn muốn chuyển vào từ điển các đối số được xác định trước, thay vì giải nén và đóng gói lại từ điển dưới dạng các đối số riêng lẻ bằng cách sử dụng cú pháp * args và ** kwargs. vformat () thực hiện công việc chia nhỏ 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 thức khác nhau được mô tả bên dưới.

Phương thức API chính. Nó có một chuỗi định dạng và một tập hợp các đối số vị trí và từ khóa tùy ý. Nó chỉ là một trình bao bọc gọi vformat ().

Lớp chuỗi tích hợp cung cấp khả năng thực hiện các thay thế biến phức tạp và định dạng giá trị thông qua phương thức format () được mô tả trong PEP 3101. Lớp Formatter trong mô-đun chuỗi 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 mình bằng cách sử dụng cách triển khai tương tự như phương thức format () được tích hợp sẵn.

Cú pháp định dạng chuỗi

Phương thức str.format () và lớp Chia sẻ cùng một lớp định dạng
cú pháp cho các chuỗi định dạng (mặc dù trong trường hợp Định dạng ,
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 là
liên quan đến các ký tự chuỗi được định dạng , nhưng nó là
ít phức tạp hơn và đặc biệt là không hỗ trợ các cách diễn đạt tùy tiện.

Chuỗi định dạng chứa “trường thay thế” được bao quanh bởi dấu ngoặc nhọn {} .
Bất kỳ thứ gì không có trong dấu ngoặc nhọn đều được coi là văn bản theo nghĩa đen, đó là
được sao chép không thay đổi vào đầu ra. Nếu bạn cần bao gồm một ký tự dấu ngoặc nhọn trong
văn bản theo nghĩa đen, nó có thể được thoát bằng cách nhân đôi: {{}} .

Ngữ pháp cho trường thay thế như sau:

 

Replace_field
:: = "{" [

field_name

] ["!"

chuyển đổi

] [":"

format_spec

] "}"

field_name
:: = arg_name ("."

property_name

| "["

element_index

"]") *

arg_name
:: = [

mã định danh

|

chữ số

+]

thuộc tính_name
:: =

mã định danh

element_index
:: =

chữ số

+ |

index_string

index_string
:: = & lt; bất kỳ ký tự nguồn nào ngoại trừ "] "& gt; +

chuyển đổi
:: = "r" | "s" | "một"

format_spec
:: = & lt; được mô tả trong phần tiếp theo & gt;

Trong các thuật ngữ ít trang trọng hơn, trường thay thế có thể bắt đầu bằng field_name chỉ định
đối tượng có giá trị được định dạng và chèn vào
vào đầu ra thay vì trường thay thế.
Trường_mục_tên được tuỳ chọn theo sau bởi trường chuyển đổi, là
đứng trước dấu chấm than '!' và format_spec đứng trước
bởi dấu hai chấm ':' . Các định dạng này chỉ định một định dạng không phải mặc định cho giá trị thay thế.

Xem thêm phần Ngôn ngữ thu nhỏ của đặc điểm kỹ thuật định dạng .

Bản thân field_name bắt đầu bằng một arg_name là một số hoặc một
từ khóa. Nếu là số, nó đề cập đến đối số vị trí và nếu là từ khóa,
nó đề cập đến một đối số từ khóa được đặt tên. Nếu arg_names số trong một chuỗi định dạng
là 0, 1, 2,… theo thứ 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ẽ tự động được chèn theo thứ tự đó.
Vì arg_name không được phân tách bằng dấu ngoặc kép nên không thể chỉ định tùy ý
khóa từ điển (ví dụ: chuỗi '10' hoặc ': -]') trong một chuỗi định dạng.
Arg_name có thể được theo sau bởi bất kỳ số chỉ mục nào hoặc
các biểu thức thuộc tính. Một biểu thức có dạng '. Name' chọn tên được đặt tên
thuộc tính sử dụng getattr () , trong khi biểu thức có dạng < code class = "docutils Lite notranslate"> ‘[index]’
thực hiện tra cứu chỉ mục bằng cách sử dụng __ getitem __ () .

Đã thay đổi trong phiên bản 3.1: Có thể bỏ qua mã xác định đối số vị trí cho str.format () ,
vì vậy '{} {}'. format (a, b) tương đương với '{0} {1}'. định dạng (a, b) .

Đã thay đổi trong phiên bản 3.4: Có thể bỏ qua các mã xác định đối số vị trí cho Định dạng .

Một số ví dụ về chuỗi định dạng đơn giản:

 

"Trước tiên, bạn phải đếm đến

{0}

"

# Tham chiếu đối số vị trí đầu tiên

"Mang cho tôi một

{}

"

# Tham chiếu ngầm đối số vị trí đầu tiên

"Từ

{}

đến

{ }

"

# Giống như" Từ {0} đến {1} "

"Nhiệm vụ của tôi là

{name}

"

# Tham chiếu đối số từ khóa 'name'

"Trọng lượng tính bằng tấn

{0. weight}

"

# 'weight' của đối số vị trí đầu tiên

"Các đơn vị bị phá hủy:

{người chơi [0]}

"

# Phần tử đầu tiên của đối số từ khóa 'trình phát'.

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ởi phương thức __ format __ () của giá trị
chính nó. Tuy nhiên, trong một số trường hợp, bạn nên bắt buộc một kiểu phải được định dạng
dưới dạng một chuỗi, ghi đè đị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 __ format __ () , logic định dạng thông thường
bị bỏ qua.

Ba cờ chuyển đổi hiện được hỗ trợ: '! s' gọi str ()
trên giá trị, '! r' gọi repr () '! a' gọi
ascii () .

Một số ví dụ:

 

"Harold thật thông minh

{0! s}

"

# Gọi str () trên đối số trước

"Mang lại sự thánh thiện

{name! r}

"

# Gọi repr () cho đối số trước

"Thêm

{! a}

"

# Gọi ascii () trên đối số trước

Trường format_spec chứa thông số kỹ thuật về giá trị phải như thế nào
được trình bày, bao gồm các chi tiết như chiều rộng trường, căn chỉnh, khoảng đệm, số thập phân
độ chính xác và vân vân. Mỗi loại giá trị có thể xác định “định dạng
ngôn ngữ nhỏ ”hoặc cách diễn giải format_spec.

Hầu hết các loại tích hợp đều hỗ trợ một ngôn ngữ nhỏ định dạng phổ biến, đó là
được mô tả trong phần tiếp theo.

Trường format_spec cũng có thể bao gồm các trường thay thế lồng nhau bên trong nó.
Các trường thay thế lồng nhau này có thể chứa tên trường, cờ chuyển đổi
và đặc tả định dạng, nhưng lồng ghép sâu hơn là
không cho phép. Các trường thay thế trong
format_spec được thay thế trước khi chuỗi format_spec được diễn giải.
Đ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ụ về định dạng để biết một số ví dụ.

Đặc tả định dạng Ngôn ngữ nhỏ

“Thông số kỹ thuật định dạng” được sử dụng trong các trường thay thế có trong
chuỗi định dạng để xác định cách trình bày các giá trị riêng lẻ (xem Cú pháp chuỗi định dạng Các ký tự chuỗi được định dạng ).
Chúng cũng có thể được chuyển trực tiếp đến cài đặt sẵn
Hàm format () . Mỗi loại định dạng có thể xác định cách định dạng
đặc điểm kỹ thuật phải được diễn giải.

Hầu hết các loại tích hợp đều triển khai các tùy chọn sau cho đặc điểm đị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ư thể bạn đã gọi str () trên giá trị. Một
đặc tả định dạng không trống thường sửa đổi kết quả.

Dạng chung của công cụ chỉ định định dạng chuẩn là:

 format_spec  :: = [[  

fill

]

align ] [

] [#] [0] [

width

] [

grouping_option

] [.

precision

] [ < code class = "xref docutils Lite notranslate">

loại

]

điền
:: = & lt; bất kỳ ký tự nào & gt;

align
:: = "& lt;" | "& gt;" | "=" | "^"

sign
:: = "+" | "-" | ""

width
:: =

chữ số

+

grouping_option
:: = "_" | ","

precision
:: =

chữ số

+

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, giá trị đó có thể được đặt trước bằng một điền
ký tự có thể là bất kỳ ký tự nào và mặc định là khoảng trắng nếu bị bỏ qua.
Không thể sử dụng dấu ngoặc nhọn theo nghĩa đen (” {" hoặc "} ”) làm
ký tự điền vào chuỗi được định dạng theo nghĩa đen hoặc khi sử dụng str.format ()
phương pháp. Tuy nhiên, có thể chèn một dấu ngoặc nhọn
với một trường thay thế lồng nhau. Hạn chế này không
ảnh hưởng đến chức năng format () .

Ý nghĩa của các tùy chọn căn chỉnh khác nhau như sau:

Tùy chọn

Ý nghĩa

'& lt;'

Buộc trường phải được căn trái trong phạm vi có sẵn
khoảng trắng (đây là mặc định cho hầu hết các đối tượng).

'& gt;'

Buộc trường phải được căn phải trong
dung lượng khả dụng (đây là mặc định cho các số).

'='

Buộc đặt phần đệm sau dấu hiệu (nếu có)
nhưng trước các chữ số. Điều này được sử dụng cho các trường in
ở dạng ‘+000000120’. Tùy chọn căn chỉnh này chỉ là
hợp lệ cho các kiểu 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 trường phải được căn giữa trong phần có sẵn
không gian.

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 chỉ hợp lệ cho các loại số và có thể là một trong các
sau:

Tùy chọn

Ý nghĩa

'+'

chỉ ra rằng một dấu hiệu nên được sử dụng cho cả hai
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 để phủ định
số (đây là hành vi mặc định).

dấu cách

chỉ ra rằng một khoảng trống ở đầu nên được sử dụng trên
số dương và dấu trừ trên số âm.

Tùy chọn '#' khiến “biểu mẫu thay thế” được sử dụng cho
sự chuyển đổi. Biểu mẫu thay thế được định nghĩa khác nhau cho các
các loại. Tùy chọn này chỉ hợp lệ cho số nguyên, số thực và số phức
các loại. Đối với 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 '0b' , '0o' ,
'0x' hoặc '0X' đến giá trị đầu ra. Đối với float và phức tạp,
biểu mẫu thay thế khiến kết quả của chuyển đổi luôn chứa
ký tự dấu thập phân, ngay cả khi không có chữ số nào theo sau nó. Thông thường, một
ký tự dấu thập phân xuất hiện trong kết quả của những chuyển đổi này
chỉ khi một chữ số theo sau nó. Ngoài ra, đối với 'g' 'G'
các chuyển đổi, các số không ở cuối không bị xóa khỏi kết quả.

Tùy chọn ',' báo hiệu việc sử dụng dấu phẩy cho dấu phân cách hàng nghìn.
Đối với dấu phân tách nhận biết ngôn ngữ, hãy sử dụng kiểu trình bày số nguyên 'n'
thay vào đó.

Đã thay đổi trong phiên bản 3.1: Đã thêm tùy chọn ',' (xem thêm PEP 378 ).

Tùy chọn '_' báo hiệu việc sử dụng dấu gạch dưới cho hàng nghìn
dấu phân cách cho các kiểu trình bày dấu phẩy động và cho số nguyên
kiểu trình bày 'd' . Đối với các kiểu trình bày số nguyên 'b' ,
'o' , 'x' 'X' , dấu gạch dưới sẽ được chèn sau mỗi 4
các chữ số. Đối với các loại bản 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 '_' (xem thêm PEP 515 ).

width là một số nguyên thập phân xác định tổng chiều rộng tối thiểu của trường,
bao gồm bất kỳ tiền tố, dấu phân tá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ẽ do nội dung xác định.

Khi không có căn chỉnh rõ ràng nào được đưa ra, đặt trước trường độ rộng một số 0
( '0' ) ký tự cho phép
dấu đệm số 0 nhận biết dấu hiệu cho các loại số. Điều này tương đương với một điền vào
ký tự của '0' với kiểu căn chỉnh là '=' .

Đã thay đổi trong phiên bản 3.10: Việc đặt trước trường width bởi '0' không còn ảnh hưởng đến giá trị mặc định
căn chỉnh cho các chuỗi.

Độ chính xác là một số nguyên thập phân cho biết có bao nhiêu chữ số
hiển thị sau dấu thập phân cho các loại bản trình bày
'f' 'F' hoặc trước và sau dấu thập phân cho bản trình bày
loại 'g' hoặc 'G' . Đối với kiểu trình bày chuỗi, trường
cho biết kích thước trường tối đa - nói cách khác, sẽ có bao nhiêu ký tự
được sử dụng từ nội dung trường. Độ chính xác không được phép đối với số nguyên
các kiểu trình bày.

Cuối cùng, kiểu xác định cách trình bày dữ liệu.

Các kiểu trình bày chuỗi có sẵn là:

Nhập

Ý nghĩa

của '

Định dạng chuỗi. Đây là loại mặc định cho các chuỗi và
có thể bị bỏ qua.

Không có

Giống với của '.

Các kiểu trình bày số nguyên có sẵn là:

Nhập

Ý nghĩa

'b'

Định dạng nhị phân. Xuất ra số ở cơ số 2.

'c'

Nhân vật. Chuyển đổi số nguyên thành tương ứng
ký tự unicode trước khi in.

'd'

Số nguyên thập phân. Xuất ra số trong cơ số 10.

'o'

Định dạng bát phân. Xuất ra số ở cơ số 8.

'x'

Định dạng hex. Xuất ra số ở cơ số 16, sử dụng
chữ thường cho các chữ số trên 9.

'X'

Định dạng hex. Xuất ra số ở cơ số 16, sử dụng
chữ hoa cho các chữ số trên 9.
Trong trường hợp '#' được chỉ định, tiền tố '0x' sẽ
cũng được viết hoa thành '0X' .

'n'

Số. Điều này giống với 'd' , ngoại trừ nó sử dụng
cài đặt ngôn ngữ hiện tại để chèn
ký tự phân cách số.

Không có

Giống với 'd' .

Ngoài các kiểu trình bày ở trên, số nguyên có thể được định dạng
với các kiểu trình bày dấu phẩy động được liệt kê bên dưới (ngoại trừ
'n' Không có ). Khi làm như vậy, float () được sử dụng để chuyển đổi
số nguyên thành một số dấu phẩy động trước khi định dạng.

Các loại bản trình bày có sẵn cho float
Các giá trị của Thập phân là:

Nhập

Ý nghĩa

'e'

Ký hiệu khoa học. Đối với độ chính xác nhất định p ,
định dạng số trong ký hiệu khoa học với
chữ cái ‘e’ ngăn cách hệ số với số mũ.
Hệ số có một chữ số trước và p chữ số
sau dấu thập phân, với tổng số p + 1
chữ số có nghĩa. Không có độ chính xác được đưa ra, sử dụng
độ chính xác của 6 chữ số sau dấu thập phân cho
float và hiển thị tất cả các chữ số hệ số
cho Thập phân . Nếu không có chữ số nào theo sau
dấu thập phân, dấu thập phân cũng bị xóa trừ khi
tùy chọn # được sử dụng.

'E'

Ký hiệu khoa học. Giống như 'e' ngoại trừ nó sử dụng
chữ hoa ‘E’ làm ký tự phân cách.

'f'

Ký hiệu điểm cố định. Đối với độ chính xác nhất định p ,
định dạng số dưới dạng số thập phân với chính xác
p các chữ số theo sau dấu thập phân. Với không
độ chính xác đã cho, sử dụng độ chính xác của 6 chữ số sau
dấu thập phân cho float và sử dụng
độ chính xác đủ lớn để hiển thị tất cả các chữ số hệ số
cho Thập phân . Nếu không có chữ số nào theo sau
dấu thập phân, dấu thập phân cũng bị xóa trừ khi
tùy chọn # được sử dụng.

'F'

Ký hiệu điểm cố định. Giống như 'f' , nhưng chuyển đổi
nan thành NAN inf thành THÔNG TIN .

'g'

Định dạng chung. Đối với độ chính xác nhất định p & gt; = 1 ,
điều này làm tròn số thành p chữ số có nghĩa 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ủa 0 được coi là tương đương với
độ chính xác của 1 .

Các quy tắc chính xác như sau: giả sử rằng
kết quả được định dạng với loại bản trình bày 'e'
độ chính xác p-1 sẽ có số mũ exp . Sau đó,
nếu m & lt; = exp & lt; p , trong đó m là -4 cho float và -6
đối với Số thập phân , số là
được định dạng với kiểu bản trình bày 'f' và độ chính xác
p-1-exp . Nếu không, số được định dạng
với loại bản trình bày 'e' và độ chính xác p-1 .
Trong cả hai trường hợp, các số không ở cuối không đáng kể đều bị xóa
từ ý nghĩa và dấu thập phân cũng là
bị xóa nếu không còn chữ số nào theo sau nó,
trừ khi tùy chọn '#' được sử dụng.

Không cung cấp độ chính xác, hãy sử dụng độ chính xác 6
chữ số có nghĩa cho float . Vì
Decimal , 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ơn
1e-6 về giá trị tuyệt đối và các giá trị ở vị trí
giá trị của chữ số có nghĩa nhỏ nhất lớn hơn 1,
và ký hiệu điểm cố định được sử dụng theo cách khác.

Vô cực dương và âm, dương và âm
zero và nans, được định dạng là inf , - inf ,
0 , - 0 nan tương ứng, bất chấp
độ chính xác.

'G'

Định dạng chung. Giống như 'g' ngoại trừ chuyển sang
'E' nếu số quá lớn. Các
các đại diện của vô cực và NaN cũng được viết hoa.

'n'

Số. Điều này giống với 'g' , ngoại trừ nó sử dụng
cài đặt ngôn ngữ hiện tại để chèn
ký tự phân cách số.

'%'

Phần trăm. Nhân số với 100 và hiển thị
ở định dạng cố định ( 'f' ), theo sau là dấu phần trăm.

Không có

Đối với float , điều này giống với 'g' , ngoại trừ
khi ký hiệu điểm cố định được sử dụng để định dạng
kết quả là nó luôn bao gồm ít nhất một chữ số sau
dấu thập phân. Độ chính xác được sử dụng là lớn khi cần thiết
để thể hiện giá trị đã cho một cách trung thực.

Đối với Decimal , điều này giống với
'g' hoặc 'G' tùy thuộc vào giá trị của
context.capitals cho ngữ cảnh thập phân hiện tại.

Hiệu quả tổng thể là khớp với kết quả đầu ra của str ()
như được thay đổi bởi các công cụ sửa đổi định dạng khác.

Ví dụ về định dạng

Phần này chứa các ví dụ về str.format () < / span> cú pháp và
so sánh với % -formatting cũ.

Trong hầu hết các trường hợp, cú pháp tương tự như cú pháp cũ% -format, với
bổ sung {} và với : được sử dụng thay vì % .
Ví dụ: '% 03.2f' có thể được dịch thành '{: 03.2f}' .

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í:

 

& gt; & gt; & gt;

'

{0}

,

{1}

,

{2}

'

.

format

(

'a '

,

' b '

,

'c'

)

'a, b, c'

& gt; & gt; & gt;

'

{}

,

{}

,

{}

'

.

format

(

'a'

,

'b'

,

'c'

)

# 3.1+ chỉ

'a, b, c'

& gt; & gt; & gt;

'

{2}

,

{1}

,

{0}

'

.

format

(

'a '

,

' b '

,

'c'

)

'c, b, a'

& gt; & gt; & gt;

'

{2}

,

{1}

,

{0}

'

.

format

(

* < / p>

'abc'

)

# giải nén chuỗi đối số

'c, b, a'

& gt; & gt; & gt;

'

{0} {1} {0}

'

.

format

(

'abra '

,

' cad '

)

# đối số có thể được lặp lại

'abracadabra'

Truy cập các đối số theo tên:

 

& gt; & gt; & gt;

'Tọa độ:

{latitude}

,

{longitude}

'

.

format

(

vĩ độ

=

'37,24 N '

,

kinh độ

=

'- 115,81W'

)

'Tọa độ: 37,24N, -115,81W'

& gt; & gt; & gt;

coord

=

{

'vĩ độ'

:

'37,24N'

,

'kinh độ'

:

'- 115,81W'

}

& gt; & gt; & gt;

'Tọa độ:

{latitude}

,

{longitude}

'

.

format

(

**

coord

)

'Tọa độ: 37,24N, -115,81W'

Truy cập thuộc tính của đối số:

 

& gt; & gt; & gt;

c

=

3

-

5

j

& gt; & gt; & gt;

(

'Số phức

{0}

được hình thành từ phần thực

{0.real}

'

...

'và phần ảo

{0.imag}

< p class = "s1">. '

)

.

format

(

c

)

'Số phức (3-5j) được hình thành từ phần thực 3.0 và phần ảo -5.0.'

& gt; & gt; & gt;

class

Điểm

:

...

def

__ init__

(

tự

,

x

,

y

):

...

tự

.

x

,

tự

.

y

=

x

,

y

...

def

__ str__

(

tự

):

...

return

'Point (

{self.x}

< p class = "s1">,

{self.y}

) '

.

format

(

tự

=

tự

)

...

& gt; & gt; & gt;

str

(

Điểm

(

4

,

2

))

'Điểm (4, 2)'

Truy cập các mục của đối số:

 

& gt; & gt; & gt;

coord

=

(

3

,

5

)

& gt; & gt; & gt;

'X:

{0 [0]}

; Y:

{0 [1]}

'

.

format

(

coord

)

'X: 3; Y: 5 '

Thay thế % s % r :

 

& gt; & gt; & gt;

"repr () hiển thị dấu ngoặc kép:

{! r}

; str ( ) không:

{! s}

"

.

format

(

'test1'

,

'test2'

)

"repr () hiển thị dấu ngoặc kép: 'test1'; str () không: test2"

Căn chỉnh văn bản và chỉ định chiều rộng:

 

& gt; & gt; & gt;

'

{: & lt; 30}

'

.

format

(

'căn trái' < / p>

)

'căn trái'

& gt; & gt; & gt;

'

{: & gt; 30}

'

.

format

(

'right align' < / p>

)

'căn phải'

& gt; & gt; & gt;

'

{: ^ 30}

'

.

format

(

'centered'

)

'căn giữa'

& gt; & gt; & gt;

'

{: * ^ 30}

'

.

format

(

'centered'

)

# sử dụng '*' làm ký tự điền

'*********** trung tâm ***********'

Thay thế % + f , % - f % f và chỉ định một dấu hiệu:

 

& gt; & gt; & gt;

'

{: + f}

;

{: + f}

'

.

định dạng

(

3,14

,

< p class = "o"> -

3,14

)

# hiển thị luôn

'+ 3,140000; -3.140000 '

& gt; & gt; & gt;

'

{: f}

;

{: f}

'

.

định dạng

(

3,14

,

-

3,14

)

# hiển thị khoảng trắng cho số dương

'3.140000; -3.140000 '

& gt; & gt; & gt;

'

{: - f}

;

{: - f}

'

.

định dạng

(

3,14

,

< p class = "o"> -

3,14

)

# chỉ hiển thị dấu trừ - giống như '{: f}; {: f} '

'3.140000; -3.140000 '

< / p>
 

& gt; & gt; & gt; Định dạng

# cũng hỗ trợ số nhị phân

& gt; & gt; & gt;

"int:

{0: d}

; hex:

{0: x}

; oct:

{0: o}

; bin:

{0: b}

"

.

format

(

42

)

'int: 42; hệ lục phân: 2a; bát độ: 52; thùng: 101010 '

& gt; & gt; & gt;

# với tiền tố 0x, 0o hoặc 0b:

& gt; & gt; & gt;

"int:

{0: d}

; hex:

{0: #x}

; oct:

{0: #o}

; bin:

{0: #b}

"

.

format

(

42

)

'int: 42; hex: 0x2a; oct: 0o52; bin: 0b101010 '

Sử dụng dấu phẩy làm dấu phân cách hàng nghìn:

 

& gt; & gt; & gt;

'

{:,}

'

.

format

(

1234567890

)

'1.234.567.890'

Biểu thị tỷ lệ phần trăm:

 

& gt; & gt; & gt;

điểm

=

19

& gt; & gt; & gt;

tổng số

=

22

& gt; & gt; & gt;

'Câu trả lời đúng:

{:. 2%}

'

.

format

(

điểm < / p>

/

tổng

)

'Câu trả lời đúng: 86,36%'

Sử dụng định dạng dành riêng cho từng loại:

 

& gt; & gt; & gt;

nhập

ngày giờ

& gt; & gt; & gt;

d

=

ngày giờ

.

datetime

(

2010

,

7

,

4

,

12

,

15

< p class = "p">,

58

)

& gt; & gt; & gt;

'{:% Y-% m-

% d

% H: % M:% S} '

.

format

(

d

)

'2010-07-04 12:15:58'

Lồng các đối số và các ví dụ phức tạp hơn:

 

& gt; & gt; & gt;

cho

align

,

text

in

zip

(

'& lt; ^ & gt;'

,

[

'còn lại '

,

' center '

,

'right'

]):

...

'{0:

{fill} {align}

< p class = "s1"> 16} '

.

format

(< / p>

text

,

điền

=

align

,

align

=

align

)

...

'left & lt; & lt; & lt; & lt; & lt; & lt; & lt; & lt; & lt; & lt; & lt; & lt;'

'^^^^^ trung tâm ^^^^^'

'& gt; & gt; & gt; & gt; & gt; & gt; & gt; & gt; & gt; & gt; & gt; right'

& gt; & gt; & gt;

& gt; & gt; & gt;

octet

=

[

192

,

168

,

0

,

1

]

& gt; & gt; & gt;

'

{: 02X} {: 02X} {: 02X} {: 02X}

'

.

format

(

*

các bộ tám

)

'C0A80001'

& gt; & gt; & gt;

int

(

_

,

16

)

3232235521

& gt; & gt; & gt;

& gt; & gt; & gt;

width

=

5

& gt; & gt; & gt;

cho

num

in

phạm vi

(

5

,

12

):

...

cho

cơ sở

in

'dXob'

:

...

in

(

' {0:

{width} {base}

} '

.

format

(

num

,

cơ sở

=

cơ sở

,

chiều rộng

=

chiều rộng

),

end

=

''

< p class = "p">)

...

in

()

...

5 5 5 101

6 6 6 110

7 7 7 111

8 8 10 1000

9 9 11 1001

10 A 12 1010

11 B 13 1011


Xem thêm những thông tin liên quan đến chủ đề chuỗi định dạng python 3

Python Tutorials - "{} {}" .format ("string_formatting_in_Python", 3)

  • Tác giả: PyMoondra
  • Ngày đăng: 2019-09-16
  • Đánh giá: 4 ⭐ ( 9713 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: This video is the second in the string formatting in Python series, specifically Python 3. We will continue building up on what with we learned with the previous video in the series, and learn about a
    more Pythonic way to handle string formatting.

    If you haven't seen the previous video, I highly suggest you do:

    https://www.youtube.com/watch?v=t1tX3V9dRUM&t=723s

    .format() string formatting Python

    Just created a facebook page:

    https://www.facebook.com/PyMoondra-102713454407069/?modal=admin_todo_tour

    Here is my reddit account for sharing links:

    https://www.reddit.com/user/sayaos/

    Here is my twitter account for programming:

    https://twitter.com/Moondra2017

    Here is my github account:

    https://github.com/moondra2017

Chuỗi (String) trong Python

  • Tác giả: vietjack.com
  • Đánh giá: 4 ⭐ ( 1991 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Chuỗi (String) trong Python - Học Python cơ bản và nâng cao theo các bước đơn giản từ Tổng quan, Cài đặt, Biến, Toán tử, Cú pháp cơ bản, Hướng đối tượng, Vòng lặp, Chuỗi, Number, List, Dictionary, Tuple, Module, Xử lý ngoại lệ, Tool, Exception Handling, Socket, GUI, Multithread, Lập trình mạng, Xử lý XML.

Ví dụ về định dạng chuỗi Python

  • Tác giả: helpex.vn
  • Đánh giá: 3 ⭐ ( 3468 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Bất cứ khi nào bạn đang lập trình một cái gì đó để con người có thể đọc được, bạn nhất định gặp phải rất nhiều trường hợp mà bạn sẽ cần phải định dạng chuỗi. May mắn thay, Python cung cấp…

Kiểu dữ liệu chuỗi và định dạng chuỗi trong Python

  • Tác giả: topdev.vn
  • Đánh giá: 4 ⭐ ( 8590 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Xử lý văn bản là công việc thường xuyên trong các ứng dụng hiện đại, văn bản có ở khắp mọi nơi, do vậy nắm vững kiến thức về kiểu chuỗi sẽ giúp bạn giải quyết được các vấn đề.

Chuỗi (String)

  • Tác giả: hiepsiit.net
  • Đánh giá: 5 ⭐ ( 9744 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Cách sử dụng bộ định dạng chuỗi trong Python 3

  • Tác giả: galaxyz.net
  • Đánh giá: 4 ⭐ ( 8879 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Phương thức str.format() của lớp chuỗi trong Python cho phép bạn thực hiện các thay thế biến và định dạng giá trị. Điều này cho phép bạn nối các phần tử với nhau trong một chuỗi thông qua định dạng vị trí.

định dạng chuỗi trong Python 3

  • Tác giả: vntranhungmanh.blogspot.com
  • Đánh giá: 3 ⭐ ( 5277 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

Xem Thêm  pop () bằng Python - xuất hiện trong danh sách python