溫馨提示×

溫馨提示×

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

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

Python中如何使用%運(yùn)算符

發(fā)布時(shí)間:2021-08-13 11:45:04 來源:億速云 閱讀:295 作者:Leah 欄目:編程語言

本篇文章為大家展示了Python中如何使用%運(yùn)算符,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

在python中也有類似于c中的printf()的格式輸出標(biāo)記。在python格式化使用的是%運(yùn)算符,通用的形式為

格式標(biāo)記字符串 % 要輸出的值組 其中,左邊部分的”格式標(biāo)記字符串“可以完全和c中的一致。右邊的'值組'如果有兩個(gè)及以上的值則需要用小括號括起來,中間用短號隔開。重點(diǎn)來看左邊的部分。左邊部分的最簡單形式為:%cdoe 其中的code有多種,不過由于在python格式化中,所有東西都可以轉(zhuǎn)換成string類型,因此,如果沒有什么特殊需求完全可以全部使用’%s‘來標(biāo)記。比如:

'%s %s %s' % (1, 2.3, ['one', 'two', 'three'])

它的輸出為

'1 2.3 ['one', 'two', 'three']'

就是按照%左邊的標(biāo)記輸出的。雖然***個(gè)和第二值不是string類型,一樣沒有問題。在這個(gè)過程中,當(dāng)電腦發(fā)現(xiàn)***個(gè)值不是%s時(shí),會先調(diào)用整型數(shù)的函數(shù),把***個(gè)值也就是1轉(zhuǎn)成string類型,然后再調(diào)用str()函數(shù)來輸出。前面說過還有一個(gè)repr()函數(shù),如果要用這個(gè)函數(shù),可以用%r來標(biāo)記。除了%s外,還有很多類似的code:

整型數(shù):%d 無符號整型數(shù):%u 八進(jìn)制:%o 十六進(jìn)制:%x %X 浮點(diǎn)數(shù):%f科學(xué)記數(shù)法: %e %E 根據(jù)數(shù)值的不同自動選擇%e或%f: %g 根據(jù)數(shù)值的不同自動選擇%E或%f: %G 就跟前面說用\進(jìn)行轉(zhuǎn)義一樣,這里用%作為格式標(biāo)記的標(biāo)識,也有一個(gè)%本身應(yīng)該如何輸出的問題。如果要在”格式標(biāo)記字符串“中輸出%本身,可以用%%來表示。上面說的只是格式標(biāo)記的最簡間的形式,來看復(fù)雜一點(diǎn)的:

‘%6.2f’ % 1.235

在這種形式中,在f的前面出現(xiàn)了一個(gè)類似小數(shù)的6.2它表示的意思是,總共輸出的長度為6個(gè)字符,其中小數(shù)2位。還有更復(fù)雜的:

‘%06.2f’ % 1.235

在6的前面多了一個(gè)0,表示如果輸出的位數(shù)不足6位就用0補(bǔ)足6位。這一行的輸出為‘001.24’,可以看到小數(shù)也占用一位。類似于這里0這樣的標(biāo)記還有-、+。其中,-表示左對齊,+表示在正數(shù)前面也標(biāo)上+號,默認(rèn)是不加的。***來看最復(fù)雜的形式:

‘%(name)s:%(score)06.1f’ %{'score':9.5, 'name':'newsim'}

這種形式只用在要輸出的內(nèi)容為dictionary(一種python格式化的數(shù)據(jù)類型)時(shí),小括號中的(name)和(score)對應(yīng)于后面的鍵值對中的鍵。前面的例子可以看到,”格式標(biāo)記字符串“中標(biāo)記的順序和"要輸出的值組"中的值是一一對應(yīng)的,有順序,一對一,二對二。而在這種形式中,則不是,每個(gè)格式標(biāo)記對應(yīng)哪個(gè)值由小括號中的鍵來指定。這行代碼的輸出為:'newsim:0009.5'。

有時(shí)候在%6.2f這種形式中,6和2也不能事先指定,會在程序運(yùn)行過程中再產(chǎn)生,那怎么輸入呢,當(dāng)然不能用%%d.%df或%d.%d%f??梢杂?*.*f的形式,當(dāng)然在后面的”要輸出的值組“中包含那兩個(gè)*的值。比如:'%*.*f' % (6, 2, 2.345)就相當(dāng)于'%6.2f' % 2.345。

上述內(nèi)容就是Python中如何使用%運(yùn)算符,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

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

AI