Định dạng đầu ra python

Có một số cách để trình biểu diễn kết quả của một chương trình, dữ liệu có thể được in ở dạng có thể đọc được hoặc ghi vào tệp để sử dụng trong tương lai. Đôi khi người dùng thường muốn kiểm soát định dạng output, chỉ in các giá trị được phân tách bằng dấu cách. Có một số cách để định dạng output như sau.

  • Để sử dụng các ký tự chuỗi được định dạng, hãy bắt đầu một chuỗi bằng f hoặc F trước dấu mở ngoặc kép hoặc 3 dấu mở ngoặc kép.
  • Phương thức str.format() của các chuỗi giúp người dùng có được một kết quả tốt hơn.
  • Người dùng có thể xử lý tất cả các chuỗi bằng cách sử dụng các hoạt động cắt và nối chuỗi để tạo bất kỳ bố cục nào mà người dùng muốn. Kiểu chuỗi có một số phương thức thực hiện các thao tác hữu ích để đưa chuỗi vào chiều rộng cột đã cho.

  • 1. Định dạng kết quả sử dụng toán tử String modulo (%):
  • 2. Định dạng output bằng phương thức format():
  • 3. Định dạng output bằng phương thức chuỗi:

1. Định dạng kết quả sử dụng toán tử String modulo (%):

Các toán tử % cũng có thể được sử dụng để định dạng chuỗi. Nó thông dịch đối số bên trái giống như chuỗi định dạng hàm printf() để áp dụng cho đối số bên phải. Trong Python, không có hàm printf() nhưng chức năng cốt lõi của hàm printf cũ vẫn có trong Python. Với mục đích này, toán tử modulo % bị lớp chuỗi quá tải để thực hiện định dạng chuỗi. Do đó, nó thường được gọi là toán tử modulo chuỗi (hoặc đôi khi còn được gọi là toán tử modulus).
Toán tử modulo chuỗi (%) vẫn có sẵn trong Python (3.x) và người dùng đang sử dụng nó một cách rộng rãi. Nhưng ngày nay phong cách định dạng cũ bị loại bỏ khỏi ngôn ngữ này.

# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: 
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------

# Python program showing how to use 
# string modulo operator(%) to print 
# fancier output 
  
# print integer and float value 
print("Cafedevn : % 2d, Portal : % 5.2f" %(1, 05.333))  
  
# print integer value 
print("Total students : % 3d, Boys : % 2d" %(240, 120)) 
  
# print octal value 
print("% 7.3o"% (25)) 
  
# print exponential value 
print("% 10.3E"% (356.08977)) 

Kết quả:


Cafedevn :  1, Portal : 5.33
Total students : 240, Boys : 120
031
3.561E+02

Có hai toán tử modulo chuỗi trong ví dụ trên là: “% 2d” và “% 5.2f” Cú pháp chung cho một trình giữ định dạng là:

 % [flags] [width] [. precision] 

Chúng ta hãy xem các chuỗi format trong ví dụ của chúng tôi.

  • Chuỗi format đầu tiên, “% 2d”, được sử dụng cho thành phần đầu tiên của bộ dữ liệu của chúng ta, tức là số nguyên 1. Số đó sẽ được in với 2 ký tự. Vì 1 chỉ bao gồm một chữ số, kết quả được đệm với 1 khoảng trống ở đầu tiên.
  • Chuỗi format thứ hai “% 8.2f” là một mô tả định dạng cho một số thực. Giống như các Chuỗi format khác, nó được giới thiệu với kí tự %, theo sau là tất cả số các chữ số mà chuỗi chứa. Số này bao gồm dấu thập phân và tất cả các chữ số, tức là các số trước và sau dấu thập phân.
  • Số thực 05.333 của chúng ta phải được định dạng với 5 ký tự. Phần thập phân của số hoặc độ chính xác được đặt thành 2, tức là số theo sau dấu”.” trong trình giữ chỗ của chúng ta. Cuối cùng, ký tự cuối cùng là f của Chuỗi format của chúng ta là viết tắt của số thực (float).

2. Định dạng output bằng phương thức format():

Phương thức format() đã được thêm vào Python (2.6). Phương thức định dạng của các chuỗi đòi hỏi nhiều nỗ lực thủ công. Người dùng sử dụng dấu {} để đánh dấu nơi một biến sẽ được thay thế và có thể cung cấp các chỉ thị định dạng chi tiết, nhưng người dùng cũng cần cung cấp thông tin cần định dạng. Phương pháp này cho phép chúng ta ghép các phần tử trong một kết quả thông qua định dạng vị trí. Lấy ví dụ:

Code 1:

# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: 
#Fanpage: https://www.facebook.com/cafedevn
#Group: https://www.facebook.com/groups/cafedev.vn/
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
#Pinterest: https://www.pinterest.com/cafedevvn/
#YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
# -----------------------------------------------------------

# Python program showing  
# use of format() method 
  
# using format() method 
print('I love {} for "{}!"'.format('Cafedevn', 'Cafedevn')) 
  
# using format() method and refering  
# a position of the object 
print('{0} and {1}'.format('Cafedevn', 'Portal')) 
  
print('{1} and {0}'.format('Cafedevn', 'Portal')) 

Kết quả:

I love Cafedevn for "Cafedevn!"
Cafedevn and Portal
Portal and Cafedevn

Dấu ngoặc và ký tự bên trong chuỗi chúng ta cần in (được gọi là thuộc tính định dạng) được thay thế bằng các đối tượng được truyền vào phương thức format(). Một số trong ngoặc có thể được sử dụng để chỉ vị trí của đối tượng được truyền vào phương thức format().

 Code 2:


# Python program showing  
# a use of format() method 
  
# combining positional and keyword arguments 
print('Number one portal is {0}, {1}, and {other}.'
     .format('Cafedevn', 'For', other ='Cafedevn')) 
  
# using format() method with number  
print("Cafedevn :{0:2d}, Portal :{1:8.2f}". 
      format(12, 00.546)) 
  
# Changing positional argument 
print("Second argument: {1:3d}, first one: {0:7.2f}". 
      format(47.42, 11)) 
  
print("Cafedevn: {a:5d},  Portal: {p:8.2f}". 
     format(a = 453, p = 59.058)) 

Kết quả:

Number one portal is Cafedevn, For, and Cafedevn.
Cafedevn :12, Portal :    0.55
Second argument:  11, first one:   47.42
Cafedevn:   453, Portal:    59.06

Code 3:


# Python program to  
# show format () is  
# used in dictionary 
  
tab = {'Cafedevn': 4127, 'for': 4098, 'geek': 8637678} 
  
# using format() in dictionary 
print('Cafedevn: {0[geeks]:d}; For: {0[for]:d}; '
    'Cafedevn: {0[geek]:d}'.format(tab)) 
  
data = dict(fun ="CafedevnForCafedevn", adj ="Portal") 
  
# using format() in dictionary 
print("I love {fun} computer {adj}".format(**data)) 

Kết quả:

Cafedevn: 4127; For: 4098; Cafedevn: 8637678
I love CafedevnForCafedevn computer Portal

3. Định dạng output bằng phương thức chuỗi:

Trong kết quả này được định dạng bằng cách sử dụng các hoạt động cắt và nối chuỗi. Kiểu chuỗi có một số phương thức giúp định dạng kết quả theo cách dễ hiểu hơn. Một số phương thức giúp cho việc định dạng một kết quả là str.ljust(), str.rjust(), str.centre().

# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: 
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------

# Python program to 
# format a output using 
# string() method 
  
cstr = "I love cafedev.vn"
    
# Printing the center aligned   
# string with fillchr  
print ("Center aligned string with fillchr: ")  
print (cstr.center(40, '#'))  
  
# Printing the left aligned   
# string with "-" padding   
print ("The left aligned string is : ")  
print (cstr.ljust(40, '-')) 
  
# Printing the right aligned string  
# with "-" padding   
print ("The right aligned string is : ")  
print (cstr.rjust(40, '-')) 

Kết quả:

Center aligned string with fillchr: 
##########I love cafedev.vn##########

The left aligned string is : 
I love cafedev.vn--------------------

The right aligned string is : 
--------------------I love cafedev.vn
  • Full series tự học Python từ cơ bản tới nâng cao tại đây nha.
  • Ebook về python tại đây.

Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:

  • Group Facebook
  • Fanpage
  • Youtube
  • Instagram
  • Twitter
  • Linkedin
  • Pinterest
  • Trang chủ

Chào thân ái và quyết thắng!

Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you!