首頁 > 軟體

python中的格式化輸出方法

2022-03-14 19:00:40

前言:

有幾種方法可以顯示程式的輸出。 資料可以以人類可讀的形式列印,或寫入檔案以供將來使用,甚至可以以某種其他指定的形式。 使用者通常希望對輸出格式進行更多控制,而不是簡單地列印以空格分隔的值。 有幾種方法可以格式化輸出。

  • 要使用格式化字串文字,請在左引號或三引號之前以 f 或 F 開始字串。
  • 字串的format() 方法可幫助使用者建立更精美的輸出。
  • 使用者可以通過使用字串切片和連線操作來完成所有字串處理,以建立使用者想要的任何佈局。 string 型別有一些方法可以執行有用的操作,將字串填充到給定的列寬。

1 使用字串模運運算元(%)格式化輸出

      % 運運算元也可用於字串格式化。 它將左引數解釋為與 C 語言字串中的 printf() 樣式格式非常相似,以應用於右引數。在 Python 中,沒有 printf() 函數,但古老的 printf 的功能包含在 Python 中。 為此,字串類過載了模運運算元 % 以執行字串格式化。 因此,它通常被稱為字串取模(有時甚至稱為模數)運運算元。

      字串模運運算元 ( % ) 在 Python(3.x) 中仍然可用並且被廣泛使用。 但如今,舊式格式已從語言中刪除。

# print integer and float value
print("Geeks : %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))

輸出:

      在我們的範例中有兩個:“%2d”和“%5.2f”。 格式預留位置的一般語法是: %[flags][width][.precision]type 

      讓我們看一下範例中的預留位置。

  • 第一個預留位置“%2d”用於我們元組的第一個元件,即整數 1。該數位將列印 2 個字元。 由於 1 僅包含一位數位,因此輸出用 1 個前導空白填充。
  • 第二個“%5.2f”是浮點數的格式描述。 與其他預留位置一樣,它以 % 字元引入。 後面是字串應包含的總位數。 這個數位包括小數點和所有數位,即小數點之前和之後。
  • 我們的浮點數 05.333 必須格式化為 5 個字元。 數位的小數部分或精度設定為 2,即“.”後面的數位。 在我們的預留位置中。 最後,預留位置的最後一個字元“f”代表“float”。

2 使用 format 方法格式化輸出

       在 Python(2.6) 中新增了 format() 方法。 字串的格式化方法需要更多的人工。使用者使用 {} 標記變數將被替換的位置,並且可以提供詳細的格式化指令,但使用者還需要提供要格式化的資訊。 此方法允許我們通過位置格式連線輸出中的元素。如下例所示:

例一:

# using format() method
print('I love {} for "{}!"'.format('Geeks', 'Geeks'))
 
# using format() method and referring
# a position of the object
print('{0} and {1}'.format('Geeks', 'Portal'))
 
print('{1} and {0}'.format('Geeks', 'Portal'))
 
 
# the above formatting can also be done by using f-Strings
# Although, this features work only with python 3.6 or above.
 
print(f"I love {'Geeks'} for "{'Geeks'}!"")
 
# using format() method and referring
# a position of the object
print(f"{'Geeks'} and {'Portal'}")

輸出:

      其中的括號和字元(稱為格式欄位)被傳遞給 format() 方法的物件替換。 括號中的數位可用於表示傳遞給 format() 方法的物件的位置。

​例二:

# combining positional and keyword arguments
print('Number one portal is {0}, {1}, and {other}.'
     .format('Geeks', 'For', other ='Geeks'))
 
# using format() method with number
print("Geeks :{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("Geeks: {a:5d},  Portal: {p:8.2f}".
     format(a = 453, p = 59.058))

輸出:

例三:

tab = {'geeks': 4127, 'for': 4098, 'geek': 8637678}
 
# using format() in dictionary
print('Geeks: {0[geeks]:d}; For: {0[for]:d}; '
    'Geeks: {0[geek]:d}'.format(tab))
 
data = dict(fun ="GeeksForGeeks", adj ="Portal")
 
# using format() in dictionary
print("I love {fun} computer {adj}".format(**data))

輸出:

​3 使用 String 方法格式化輸出

       此輸出通過使用字串切片和連線操作進行格式化。 字串型別有一些方法可以幫助以更奇特的方式格式化輸出。 一些有助於格式化輸出的方法是 str.rjust()、str.rjust() 和 str.centre()。

cstr = "I love geeksforgeeks"
   
# 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, '-'))

輸出:

到此這篇關於python中的格式化輸出方法的文章就介紹到這了,更多相關python格式化輸出內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com