您好,登錄后才能下訂單哦!
本篇文章為大家展示了Python如何輸入和輸出、格式化字符串,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
程序的輸出可以有多種形式:我們可以將數據以人類可讀的形式打印到屏幕上,或者將其寫入到文件中以供后續使用。
格式化輸出
迄今為止,在 Python 中存在兩種輸出值的方法:表達式語句以及 print() 函數。(第三種方法是使用文件對象的 write() 方法;標準文件輸出可以參考 sys.stdout 方法,其詳細內容請查閱庫參考手冊。)
通常,相較于簡單地打印以空格為分隔符的值,你會想要對程序的輸出結果進行更多的格式控制。在 Python 中,存在如下幾種格式化輸出的方法:
使用 f-strings 字符串。這類字符串需要在引號標記之前,以 f 或者 F 作為字符串的開頭。你可以使用 { 和 } 包裹想要嵌入到字符串中的 Python 表達式。該表達式可以是某個變量或字面值 。
>>> year = 2016 ; event = 'Referendum' >>> f'Results of the {year} {event}' 'Results of the 2016 Referendum'
str.format() 是格式化字符串的第二種方法。相較于第一種方法,該方法需要你進行更多的操作。你仍然可以在字符串中使用 { 和 } 來內嵌變量,也可以進行詳細的格式化設計。但這要求你提供與之對應的被格式化的內容。
當然,你也可以通過字符串的切片操作和連接操作來完成字符串的格式化處理。這種方法可以創建任何你想要的格式化形式。在 string 類型中,包含了一些能夠將字符串按指定列寬填充的方法。
如果你僅僅想要在調試時打印某些變量,而不進行格式化輸出,那么你也可以使用 repr() 函數或者 str() 函數將任意值轉化成字符串。
str() 函數能夠將值以人類可讀的形式呈現,而 repr() 函數則是將值以解釋器可讀的形式呈現(如果沒有與之對應的轉換語法,則會產生 SyntaxError 異常)。若某個對象沒有適用于人類可讀的形式,則 str() 函數的返回值與 repr() 函數相同。在 Python 中,諸如數值、或者是鏈表、字典這樣的結構,上述兩種函數各自有統一的呈現方式。但是對于字符串,上述兩種函數各自有獨特的呈現方式。
如下示例:
>>> s = 'Hello, world.' >>> str(s) 'Hello, world.' >>> repr(s) "'Hello, world.'" >>> str(1/7) '0.14285714285714285' >>> x = 10 * 3.25 >>> y = 200 * 200 >>> s = 'The value of x is ' + repr(x) + ', and y is ' + repr(y) + '...' >>> print(s) The value of x is 32.5, and y is 40000... >>> # 對于字符串,repr() 函數會添加引號以及反斜杠: ... hello = 'hello, world\n' >>> hellos = repr(hello) >>> print(hellos) 'hello, world\n' >>> # repr() 函數的參數也可以是某個 Python 對象: ... repr((x, y, ('spam', 'eggs'))) "(32.5, 40000, ('spam', 'eggs'))"
string 模塊包含 Template 類來提供額外的在字符串中嵌入變量的方法。該方法使用占位符,比如 $x 來內嵌變量,變量的值存放在字典中。這種方法對字符串的格式化控制較少。
格式化字符串文字
格式化字符串文字 (簡稱 f-strings )允許你在字符串中包含 Python 表達式的值,方法是在字符串前面加上 f 或者 F ,并將表達式寫成 {expression} 格式。
在表達式后面可以加上格式說明符。這樣能夠更好地控制表達式值的輸出格式。下面的例子將 PI 舍入到小數位數后三位。
>>> import math >>> print(f'The value of pi is approximately {math.pi:.3f}.')
在 ':' 之后加上一個整數表示該字段的最小字符數,這對于列排序很有用。
>>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 7678} >>> for name, phone in table.items(): ... print(f'{name:10} ==> {phone:10d}') ... Sjoerd ==> 4127 Jack ==> 4098 Dcab ==> 7678
也可用其他修飾符來轉換要格式化的值。 '!a' 表示應用 ascii()函數 , '!s' 表示應用 str() 函數, 另外 '!r' 表示應用 repr() 函數:
>>> animals = 'eels' >>> print(f'My hovercraft is full of {animals}.') My hovercraft is full of eels. >>> print('My hovercraft is full of {animals !r}.') My hovercraft is full of 'eels'.
有關這些格式規范的參考,請參閱參考指南 最小字符串格式化。
format () 字符串格式化方法
str.format() 的基本使用方法如下:
>>> print('We are the {} who say "{}!"'.format('knights', 'Ni')) We are the knights who say "Ni!"
其中的括號和字符(稱為格式字段)將用傳入 str.format() 方法中的對象來替換。括號中的數字可用于表示傳遞給 str.format() 方法的對象的位置。
>>> print('{0} and {1}'.format('spam', 'eggs')) spam and eggs >>> print('{1} and {0}'.format('spam', 'eggs')) eggs and spam
如果在 str.format() 方法中使用關鍵字參數,其值等于參數名稱對應的值。
>>> print('This {food} is {adjective}.'.format( ... food='spam', adjective='absolutely horrible')) This spam is absolutely horrible.
位置和關鍵字參數可以任意組合:
>>> print('The story of {0}, {1}, and {other}.'.format('Bill', 'Manfred', other='Georg')) The story of Bill, Manfred, and Georg.
如果你有一個不想拆分的長字符,使用名稱而不是位置來進行格式化將會是一個更好的方法。這可以簡單的使用 '[]'符號來獲取字典中的鍵
>>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 8637678} >>> print('Jack: {0[Jack]:d}; Sjoerd: {0[Sjoerd]:d}; ' ... 'Dcab: {0[Dcab]:d}'.format(table)) Jack: 4098; Sjoerd: 4127; Dcab: 8637678
上面的方法也可以使用 '**' 將字典中的信息進行傳遞。
>>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 8637678} >>> print('Jack: {Jack:d}; Sjoerd: {Sjoerd:d}; Dcab: {Dcab:d}'.format(**table)) Jack: 4098; Sjoerd: 4127; Dcab: 8637678
傳統字符串格式化方法
操作符 '%' 同樣可以被用來格式化字符串。它將該操作符左側參數解釋為'sprintf ()' 樣式的字符串應用到操作符右側參數,并且返回字符串。例如:
>>> import math >>> print('The value of pi is approximately %5.3f.' % math.pi) The value of pi is approximately 3.142.
上述內容就是Python如何輸入和輸出、格式化字符串,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。