Chức năng định dạng số trong python là gì?

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 thứ 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

'{} {}'.format('one', 'two')

Với định dạng kiểu mới, có thể (và trong Python 2. 6 thậm chí 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

'{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

Thành lập

'{1} {0}'.format('one', 'two')
0

Mới

'{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
'{1} {0}'.format('one', 'two')
30

Thành lập

'{1} {0}'.format('one', 'two')
3

Mới

'{1} {0}'.format('one', 'two')
5

Đệ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

'{1} {0}'.format('one', 'two')
6

số

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

số nguyên

'{1} {0}'.format('one', 'two')
7

Mới

'{1} {0}'.format('one', 'two')
8

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

'{1} {0}'.format('one', 'two')
9

Mới

'{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 ký tự khoảng trắng để cho biết rằng các số âm phải được thêm vào trước ký hiệu dấu trừ và dấu cách ở đầ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

Thành lập

'{1} {0}'.format('one', 'two')
1

Mới

'{1} {0}'.format('one', 'two')
2

'{1} {0}'.format('one', 'two')
31 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

'{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ợ

'{1} {0}'.format('one', 'two')
32 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ũ

Thành lập

'{1} {0}'.format('one', 'two')
4

Mới

'{1} {0}'.format('one', 'two')
5

Mới

'{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

'{1} {0}'.format('one', 'two')
33

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

Thành lập

'{1} {0}'.format('one', 'two')
7

Mới

'{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ũ

Thành lập

'{1} {0}'.format('one', 'two')
9

Mới

'{1} {0}'.format('one', 'two')
00

đị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

'{1} {0}'.format('one', 'two')
01

'{1} {0}'.format('one', 'two')
02

Mới

'{1} {0}'.format('one', 'two')
03

Mới

'{1} {0}'.format('one', 'two')
04

Đị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

'{1} {0}'.format('one', 'two')
05

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

'{1} {0}'.format('one', 'two')
06

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

'{1} {0}'.format('one', 'two')
07

đố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

Các định dạng số khác nhau trong Python là gì?

Định dạng số

Chức năng định dạng trong Python là gì?

Định dạng Hàm trong Python (str. format()) là kỹ thuật của danh mục chuỗi cho phép bạn thử thay thế biến và định dạng dữ liệu . Nó cho phép bạn nối các phần của chuỗi theo các khoảng thời gian mong muốn thông qua định dạng dữ liệu điểm.

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

Trong Python, cả %s và %d đều là các phần giữ chỗ cho một chuỗi và một số tương ứng . name = 'Robey' number = 454 print '%s %d' % (tên, số) %s sẽ trả về chuỗi và %d sẽ trả về số, các giá trị được chuyển bằng toán tử %.

Định dạng của hàm là gì?

Hàm Định dạng là một hàm định dạng rất mạnh có thể hiển thị các giá trị số ở nhiều dạng khác nhau. Có hai loại chức năng Định dạng, một trong số đó là định dạng tích hợp hoặc được xác định trước trong khi một loại khác có thể được xác định bởi người dùng