Định dạng số và chuỗi trong Python

Python sử dụng định dạng chuỗi kiểu C để tạo các chuỗi mới, được định dạng. Toán tử "%" được sử dụng để định dạng một tập hợp các biến được đặt trong một "tuple" [danh sách kích thước cố định], cùng với một chuỗi định dạng, chứa văn bản bình thường cùng với "chỉ định đối số", các ký hiệu đặc biệt như "%s"

Giả sử bạn có một biến gọi là "tên" với tên người dùng của bạn trong đó, và sau đó bạn muốn in [ra một lời chào tới người dùng đó. ]

# This prints out "Hello, John!"
name = "John"
print["Hello, %s!" % name]

Để sử dụng hai hoặc nhiều trình xác định đối số, hãy sử dụng một bộ [dấu ngoặc đơn]

# This prints out "John is 23 years old."
name = "John"
age = 23
print["%s is %d years old." % [name, age]]

Bất kỳ đối tượng nào không phải là chuỗi cũng có thể được định dạng bằng toán tử %s. Chuỗi trả về từ phương thức "repr" của đối tượng đó được định dạng là chuỗi. Ví dụ

# This prints out: A list: [1, 2, 3]
mylist = [1,2,3]
print["A list: %s" % mylist]

Dưới đây là một số thông số đối số cơ bản bạn nên biết

'{1} {0}'.format['one', 'two']
5

'{1} {0}'.format['one', 'two']
6

'{1} {0}'.format['one', 'two']
7

'{1} {0}'.format['one', 'two']
8

'{1} {0}'.format['one', 'two']
9

Tập thể dục

Bạn sẽ cần viết một chuỗi định dạng in ra dữ liệu bằng cú pháp sau.

'{0!s} {0!r}'.format[Data[]]
0

Python đã có các trình định dạng chuỗi tuyệt vời trong nhiều năm nhưng tài liệu về chúng quá lý thuyết và kỹ thuật. Với trang web này, chúng tôi cố gắng hiển thị cho bạn các trường hợp sử dụng phổ biến nhất được bao phủ bởi API định dạng chuỗi kiểu cũ và kiểu mới với các ví dụ thực tế

Tất cả các ví dụ trên trang này đều hoạt động hiệu quả với Python 2. 7, 3. 2, 3. 3, 3. 4 và 3. 5 mà không yêu cầu bất kỳ thư viện bổ sung nào

Thông tin chi tiết về hai phương pháp định dạng này có thể được tìm thấy trong tài liệu Python chính thức

Nếu bạn muốn đóng góp thêm ví dụ, vui lòng tạo yêu cầu kéo trên Github

Mục lục

Định dạng cơ bản

Định dạng vị trí đơn giản có lẽ là trường hợp sử dụng phổ biến nhất. Sử dụng nó nếu thứ tự các đối số của bạn không có khả năng thay đổi và bạn chỉ có rất ít phần tử muốn nối

Vì các phần tử không được biểu thị bằng một cái gì đó mang tính mô tả như tên nên kiểu đơn giản này chỉ nên được sử dụng để định dạng một số phần tử tương đối nhỏ

Mới mẻ

'{} {}'.format['one', 'two']

Với định dạng kiểu mới, có thể [và trong Python 2. 6 thậm chí là bắt buộc] để cung cấp cho trình giữ chỗ một chỉ mục vị trí rõ ràng

Điều này cho phép sắp xếp lại thứ tự hiển thị mà không thay đổi các đối số

Thao tác này không khả dụng với định dạng kiểu cũ

Mới mẻ

'{1} {0}'.format['one', 'two']

chuyển đổi giá trị

Trình định dạng đơn giản kiểu mới theo mặc định gọi phương thức

'{0!s} {0!r}'.format[Data[]]
1 của một đối tượng để biểu diễn nó. Nếu bạn chỉ muốn hiển thị đầu ra của
'{0!s} {0!r}'.format[Data[]]
2 hoặc
'{0!s} {0!r}'.format[Data[]]
3, bạn có thể sử dụng cờ chuyển đổi
'{0!s} {0!r}'.format[Data[]]
4 hoặc
'{0!s} {0!r}'.format[Data[]]
5

Trong %-style, bạn thường sử dụng

'{0!s} {0!r}'.format[Data[]]
6 để biểu diễn chuỗi nhưng có
'{0!s} {0!r}'.format[Data[]]
7 cho chuyển đổi
'{0!s} {0!r}'.format[Data[]]
3

Cài đặt

# This prints out "John is 23 years old."
name = "John"
age = 23
print["%s is %d years old." % [name, age]]
3

Mới mẻ

'{0!s} {0!r}'.format[Data[]]

Trong Python 3 tồn tại một cờ chuyển đổi bổ sung sử dụng đầu ra của

'{0!s} {0!r}'.format[Data[]]
3 nhưng thay vào đó sử dụng
# This prints out "John is 23 years old."
name = "John"
age = 23
print["%s is %d years old." % [name, age]]
60

Cài đặt

# This prints out "John is 23 years old."
name = "John"
age = 23
print["%s is %d years old." % [name, age]]
6

Mới mẻ

# This prints out "John is 23 years old."
name = "John"
age = 23
print["%s is %d years old." % [name, age]]
8

Đệm và căn chỉnh chuỗi

Theo mặc định, các giá trị được định dạng để chỉ chiếm bao nhiêu ký tự cần thiết để thể hiện nội dung. Tuy nhiên, cũng có thể xác định rằng một giá trị phải được đệm theo một độ dài cụ thể

Thật không may, căn chỉnh mặc định khác nhau giữa định dạng kiểu cũ và kiểu mới. Kiểu cũ mặc định căn phải trong khi kiểu mới căn trái

Sắp xếp đúng

Một lần nữa, định dạng kiểu mới vượt qua biến thể cũ bằng cách cung cấp nhiều quyền kiểm soát hơn đối với cách các giá trị được đệm và căn chỉnh

Bạn có thể chọn ký tự đệm

Thao tác này không khả dụng với định dạng kiểu cũ

Và cả các giá trị căn giữa

Thao tác này không khả dụng với định dạng kiểu cũ

Khi sử dụng căn giữa mà độ dài của chuỗi dẫn đến sự phân chia không đều của các ký tự đệm, ký tự thừa sẽ được đặt ở bên phải

Thao tác này không khả dụng với định dạng kiểu cũ

Kết hợp cắt ngắn và đệm

Cũng có thể kết hợp cắt xén và đệm

Mới mẻ

# This prints out "John is 23 years old."
name = "John"
age = 23
print["%s is %d years old." % [name, age]]
9

Số

Tất nhiên nó cũng có thể định dạng số

số nguyên

# This prints out: A list: [1, 2, 3]
mylist = [1,2,3]
print["A list: %s" % mylist]
0

Mới mẻ

# This prints out: A list: [1, 2, 3]
mylist = [1,2,3]
print["A list: %s" % mylist]
1

Số đệm

Tương tự như chuỗi, số cũng có thể bị giới hạn ở một chiều rộng cụ thể

Một lần nữa, tương tự như việc cắt ngắn các chuỗi, độ chính xác cho các số dấu phẩy động giới hạn số lượng vị trí sau dấu thập phân

Đối với các dấu phẩy động, giá trị đệm biểu thị độ dài của đầu ra hoàn chỉnh. Trong ví dụ bên dưới, chúng tôi muốn đầu ra của mình có ít nhất 6 ký tự với 2 sau dấu thập phân

# This prints out: A list: [1, 2, 3]
mylist = [1,2,3]
print["A list: %s" % mylist]
2

Mới mẻ

'{1} {0}'.format['one', 'two']
0

Đối với các giá trị số nguyên cung cấp độ chính xác không có nhiều ý nghĩa và thực sự bị cấm theo kiểu mới [nó sẽ dẫn đến ValueError]

Số đã ký

Theo mặc định, chỉ các số âm mới có tiền tố là dấu. Điều này có thể được thay đổi tất nhiên

Sử dụng một ký tự khoảng trắng để cho biết rằng các số âm phải được thêm vào trước một ký hiệu dấu trừ và một khoảng trắng ở đầu nên được sử dụng cho các số dương

Định dạng kiểu mới cũng có thể kiểm soát vị trí của ký hiệu ký hiệu so với phần đệm

Thao tác này không khả dụng với định dạng kiểu cũ

Trình giữ chỗ được đặt tên

Cả hai kiểu định dạng đều hỗ trợ trình giữ chỗ có tên

Cài đặt

'{1} {0}'.format['one', 'two']
1

Mới mẻ

'{1} {0}'.format['one', 'two']
2

# This prints out "John is 23 years old."
name = "John"
age = 23
print["%s is %d years old." % [name, age]]
61 cũng chấp nhận đối số từ khóa

Thao tác này không khả dụng với định dạng kiểu cũ

Mới mẻ

'{1} {0}'.format['one', 'two']
3

Getitem và Getattr

Định dạng kiểu mới cho phép linh hoạt hơn trong việc truy cập các cấu trúc dữ liệu lồng nhau

Nó hỗ trợ truy cập các vùng chứa hỗ trợ

# This prints out "John is 23 years old."
name = "John"
age = 23
print["%s is %d years old." % [name, age]]
62 như từ điển và danh sách chẳng hạn

Thao tác này không khả dụng với định dạng kiểu cũ

Cài đặt

'{1} {0}'.format['one', 'two']
4

Mới mẻ

'{1} {0}'.format['one', 'two']
5

Mới mẻ

'{1} {0}'.format['one', 'two']
6

Cũng như truy cập các thuộc tính trên các đối tượng thông qua

# This prints out "John is 23 years old."
name = "John"
age = 23
print["%s is %d years old." % [name, age]]
63

Thao tác này không khả dụng với định dạng kiểu cũ

Cài đặt

'{1} {0}'.format['one', 'two']
7

Mới mẻ

'{1} {0}'.format['one', 'two']
8

Cả hai loại quyền truy cập có thể được trộn lẫn tự do và lồng nhau tùy ý

Thao tác này không khả dụng với định dạng kiểu cũ

Cài đặt

'{1} {0}'.format['one', 'two']
9

Mới mẻ

# This prints out "John is 23 years old."
name = "John"
age = 23
print["%s is %d years old." % [name, age]]
30

định dạng tham số

Ngoài ra, định dạng kiểu mới cho phép tất cả các thành phần của định dạng được chỉ định động bằng cách sử dụng tham số hóa. Định dạng tham số hóa là các biểu thức lồng nhau trong dấu ngoặc nhọn có thể xuất hiện ở bất kỳ đâu trong định dạng gốc sau dấu hai chấm

Định dạng kiểu cũ cũng hỗ trợ một số tham số hóa nhưng hạn chế hơn nhiều. Cụ thể là nó chỉ cho phép tham số hóa chiều rộng và độ chính xác của đầu ra

Căn chỉnh tham số và chiều rộng

Thao tác này không khả dụng với định dạng kiểu cũ

Mới mẻ

# This prints out "John is 23 years old."
name = "John"
age = 23
print["%s is %d years old." % [name, age]]
31

# This prints out "John is 23 years old."
name = "John"
age = 23
print["%s is %d years old." % [name, age]]
32

Mới mẻ

# This prints out "John is 23 years old."
name = "John"
age = 23
print["%s is %d years old." % [name, age]]
33

Mới mẻ

# This prints out "John is 23 years old."
name = "John"
age = 23
print["%s is %d years old." % [name, age]]
34

Định dạng lồng nhau có thể được sử dụng để thay thế bất kỳ phần nào của thông số định dạng, do đó, ví dụ chính xác ở trên có thể được viết lại thành

Thao tác này không khả dụng với định dạng kiểu cũ

Mới mẻ

# This prints out "John is 23 years old."
name = "John"
age = 23
print["%s is %d years old." % [name, age]]
35

Các định dạng lồng nhau có thể là đối số vị trí. Vị trí phụ thuộc vào thứ tự của dấu ngoặc nhọn mở

Thao tác này không khả dụng với định dạng kiểu cũ

Mới mẻ

# This prints out "John is 23 years old."
name = "John"
age = 23
print["%s is %d years old." % [name, age]]
36

Và tất nhiên, các đối số từ khóa có thể được thêm vào hỗn hợp như trước đây

Thao tác này không khả dụng với định dạng kiểu cũ

Mới mẻ

# This prints out "John is 23 years old."
name = "John"
age = 23
print["%s is %d years old." % [name, age]]
37

đối tượng tùy chỉnh

Ví dụ về ngày giờ hoạt động thông qua việc sử dụng phương pháp ma thuật

'{0!s} {0!r}'.format[Data[]]
1. Bạn có thể xác định xử lý định dạng tùy chỉnh trong các đối tượng của riêng mình bằng cách ghi đè phương thức này. Điều này cho phép bạn kiểm soát hoàn toàn cú pháp định dạng được sử dụng

Định dạng chuỗi trong Python là gì?

Định dạng chuỗi còn được gọi là phép nội suy chuỗi. Đó là quá trình chèn một chuỗi hoặc biến tùy chỉnh vào văn bản được xác định trước . custom_string = "Định dạng chuỗi" print[f"{custom_string} là một kỹ thuật mạnh mẽ"] Được cung cấp bởi Datacamp Workspace. Định dạng chuỗi là một kỹ thuật mạnh mẽ.

Định dạng số trong Python là gì?

Ví dụ về định dạng số Python .
Định dạng float dưới dạng số nguyên
Làm tròn số float đến 2 chữ số thập phân
Định dạng float dưới dạng phần trăm
Cắt bớt float ở 2 chữ số thập phân
Phần đệm bên trái có số không
đệm bên phải với số không
Sử dụng dấu phẩy làm dấu phân cách hàng nghìn
Nội suy biến với chuỗi f

%s và %d trong Python là gì?

%s được sử dụng làm trình giữ chỗ cho các giá trị chuỗi mà bạn muốn đưa vào một chuỗi được định dạng. %d được sử dụng làm trình giữ chỗ cho các giá trị số hoặc thập phân . Ví dụ [đối với python 3] print ['%s is %d years old' % ['Joe', 42]] Sẽ xuất ra Joe là 42 tuổi.

Chuỗi định dạng của và số nguyên là gì?

Trình xác định định dạng chuỗi Java

Chủ Đề