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