溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python中如何格式化輸出

發(fā)布時間:2022-03-15 09:11:17 來源:億速云 閱讀:272 作者:小新 欄目:開發(fā)技術(shù)

這篇文章將為大家詳細講解有關(guān)python中如何格式化輸出,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。


前言:

有幾種方法可以顯示程序的輸出。 數(shù)據(jù)可以以人類可讀的形式打印,或?qū)懭胛募怨硎褂?,甚至可以以某種其他指定的形式。 用戶通常希望對輸出格式進行更多控制,而不是簡單地打印以空格分隔的值。 有幾種方法可以格式化輸出。

  • 要使用格式化字符串文字,請在左引號或三引號之前以 f 或 F 開始字符串。

  • 字符串的format() 方法可幫助用戶創(chuàng)建更精美的輸出。

  • 用戶可以通過使用字符串切片和連接操作來完成所有字符串處理,以創(chuàng)建用戶想要的任何布局。 string 類型有一些方法可以執(zhí)行有用的操作,將字符串填充到給定的列寬。

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

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

      字符串模運算符 ( % ) 在 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))

輸出:

python中如何格式化輸出

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

      讓我們看一下示例中的占位符。

  • 第一個占位符“%2d”用于我們元組的第一個組件,即整數(shù) 1。該數(shù)字將打印 2 個字符。 由于 1 僅包含一位數(shù)字,因此輸出用 1 個前導(dǎo)空白填充。

  • 第二個“%5.2f”是浮點數(shù)的格式描述。 與其他占位符一樣,它以 % 字符引入。 后面是字符串應(yīng)包含的總位數(shù)。 這個數(shù)字包括小數(shù)點和所有數(shù)字,即小數(shù)點之前和之后。

  • 我們的浮點數(shù) 05.333 必須格式化為 5 個字符。 數(shù)字的小數(shù)部分或精度設(shè)置為 2,即“.”后面的數(shù)字。 在我們的占位符中。 最后,占位符的最后一個字符“f”代表“float”。

2 使用 format 方法格式化輸出

       在 Python(2.6) 中添加了 format() 方法。 字符串的格式化方法需要更多的人工。用戶使用 {} 標記變量將被替換的位置,并且可以提供詳細的格式化指令,但用戶還需要提供要格式化的信息。 此方法允許我們通過位置格式連接輸出中的元素。如下例所示:

例一:

# Python program showing
# use of format() method
 
# 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'}")

輸出:

python中如何格式化輸出

      其中的括號和字符(稱為格式字段)被傳遞給 format() 方法的對象替換。 括號中的數(shù)字可用于表示傳遞給 format() 方法的對象的位置。

例二:

# Python program showing
# a use of format() method
 
# 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))

輸出:

python中如何格式化輸出

例三:

# Python program to
# show format () is
# used in dictionary
 
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))

輸出:

python中如何格式化輸出

3 使用 String 方法格式化輸出

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

# Python program to
# format a output using
# string() method
 
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中如何格式化輸出

關(guān)于“python中如何格式化輸出”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI