python 字串格式化代碼

來源:互聯網
上載者:User

格式匯總:

格式 描述 格式 描述
%% 百分比符號%標記(多出來的%是轉義作用)
%c 字元及其ASCII碼 %s 字串
%d 有符號整數(十進位) %u 不帶正負號的整數(十進位)
%o 不帶正負號的整數(八進位)
%x 不帶正負號的整數(十六進位) %X 不帶正負號的整數(十六進位大寫字元)
%e 浮點數字(科學計數法) %E 浮點數字(科學計數法,用E代替e)
%f 浮點數字(用小數點符號)
%g 浮點數字(根據值的不同自動選擇%e或%f) %G 浮點數字(類似於%g,根據值的不同自動選擇%E或%f)
%p 指標(用十六進位列印值的記憶體位址) %n 儲存輸出字元的數量放進參數列表的下一個變數中

不過由於在python中,所有東西都可以轉換成string類型,因此,如果沒有什麼特殊需求完全可以全部使用'%s‘來標記。
比如:'%s %s %s' % (1, 2.3, ['one', 'two', 'three'])
它的輸出為'1 2.3 ['one', 'two', 'three']',就是按照%左邊的標記輸出的。
雖然第一個和第二值不是string類型,一樣沒有問題。
[在這個過程中,當電腦發現第一個值不是%s時,會先調用整型數的函數,把第一個值也就是1轉成string類型,然後再調用str()函數來輸出。]

上面說的只是格式標記的最簡間的形式,來看複雜一點的:
制定輸出長度:
‘%6.2f' % 1.235
在這種形式中,在f的前面出現了一個類似小數的6.2它表示的意思是,總共輸出的長度為6個字元,其中小數2位。

還有更複雜的:
預留位置:
‘%06.2f' % 1.235
在6的前面多了一個0,表示如果輸出的位元不足6位就用0補足6位。
這一行的輸出為‘001.24',可以看到小數也佔用一位。

類似於這裡0這樣的標記還有-、+。其中,-表示靠左對齊,+表示在正數前面也標上+號,預設是不加的。

執行個體:
%ns:如果字串變數s不足n位的話,會先輸出若干個空格後再輸出str1
%-ns:與上述相反,先輸出變數s,不足的然後用空格在後面補齊。

其他:
字典格式化輸出:
‘%(name)s:%(score)06.1f' %{'score':9.5, 'name':'newsim'}
這種形式只用在要輸出的內容為dictionary時。小括弧中的(name)和(score)對應於後面的索引值對中的鍵。

有時候在%6.2f這種形式中,6和2也不能事先指定,會在程式運行過程中再產生,那怎麼輸入呢,當然不能用%%d.%df或%d.%d%f。
可以用%*.*f的形式,當然在後面的”要輸出的值組“中包含那兩個*的值。
比如:'%*.*f' % (6, 2, 2.345)就相當於'%6.2f' % 2.345。
不過如果記不住,或不想那麼耐煩,完全可以全部用%s代替,或者用多個"+"來構造類似的輸出字串。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.