日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python中格式化字符串的作用_python中字符串格式化的意义(化妆)

發(fā)布時(shí)間:2023/12/20 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python中格式化字符串的作用_python中字符串格式化的意义(化妆) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

格式 描述

%%百分號標(biāo)記 #就是輸出一個(gè)%

%c字符及其ASCII碼

%s字符串

%d有符號整數(shù)(十進(jìn)制)

%u無符號整數(shù)(十進(jìn)制)

%o無符號整數(shù)(八進(jìn)制)

%x無符號整數(shù)(十六進(jìn)制)

%X無符號整數(shù)(十六進(jìn)制大寫字符)

%e浮點(diǎn)數(shù)字(科學(xué)計(jì)數(shù)法)

%E浮點(diǎn)數(shù)字(科學(xué)計(jì)數(shù)法,用E代替e)

%f浮點(diǎn)數(shù)字(用小數(shù)點(diǎn)符號)

%g浮點(diǎn)數(shù)字(根據(jù)值的大小采用%e或%f)

%G浮點(diǎn)數(shù)字(類似于%g)

%p指針(用十六進(jìn)制打印值的內(nèi)存地址)

%n存儲(chǔ)輸出字符的數(shù)量放進(jìn)參數(shù)列表的下一個(gè)變量中

%格式化符也可用于字典,可用%(name)引用字典中的元素進(jìn)行格式化輸出。

負(fù)號指時(shí)數(shù)字應(yīng)該是左對齊的,“0”告訴Python用前導(dǎo)0填充數(shù)字,正號指時(shí)數(shù)字總是顯示它的正負(fù)(+,-)符號,即使數(shù)字是正數(shù)也不例外。

可指定最小的字段寬度,如:"%5d" % 2。也可用句點(diǎn)符指定附加的精度,如:"%.3d" % 3。

e.g.

# 例:數(shù)字格式化

nYear = 2018

nMonth = 8

nDay = 18

# 格式化日期 %02d數(shù)字轉(zhuǎn)成兩位整型缺位填0

print '%04d-%02d-%02d'%(nYear,nMonth,nDay)

>> 2018-08-18# 輸出結(jié)果

fValue = 8.123

print '%06.2f'%fValue# 保留寬度為6的2位小數(shù)浮點(diǎn)型

>> 008.12# 輸出

print '%d'%10# 輸出十進(jìn)制

>> 10

print '%o'%10# 輸出八進(jìn)制

>> 12

print '%02x'%10# 輸出兩位十六進(jìn)制,字母小寫空缺補(bǔ)零

>> 0a

print '%04X'%10# 輸出四位十六進(jìn)制,字母大寫空缺補(bǔ)零

>> 000A

print '%.2e'%1.2888# 以科學(xué)計(jì)數(shù)法輸出浮點(diǎn)型保留2位小數(shù)

>> 1.29e+00

格式化操作符輔助指令

符號 作用

* 定義寬度或者小數(shù)點(diǎn)精度

- 用做左對齊

+ 在正數(shù)前面顯示加號( + )

在正數(shù)前面顯示空格

# 在八進(jìn)制數(shù)前面顯示零('0'),在十六進(jìn)制前面顯示'0x'或者'0X'(取決于

用的是'x'還是'X')

0 顯示的數(shù)字前面填充‘0’而不是默認(rèn)的空格

% '%%'輸出一個(gè)單一的'%'

(var) 映射變量(字典參數(shù))

m.n m 是顯示的最小總寬度,n 是小數(shù)點(diǎn)后的位數(shù)(如果可用的話)

python字符串格式化的意思就是用format函數(shù)格式化字符串的用法。

用法:它通過{}和:來代替?zhèn)鹘y(tǒng)%方式。

1、使用位置參數(shù)

要點(diǎn):從以下例子可以看出位置參數(shù)不受順序約束,且可以為{},只要format里有相對應(yīng)的參數(shù)值即可,參數(shù)索引從0開,傳入位置參數(shù)列表可用*列表

>>> li = ['hoho',18]

>>> 'my name is {} ,age {}'.format('hoho',18)

'my name is hoho ,age 18'

>>> 'my name is {1} ,age {0}'.format(10,'hoho')

'my name is hoho ,age 10'

>>> 'my name is {1} ,age {0} {1}'.format(10,'hoho')

'my name is hoho ,age 10 hoho'

>>> 'my name is {} ,age {}'.format(*li)

'my name is hoho ,age 18'

2、使用關(guān)鍵字參數(shù)

要點(diǎn):關(guān)鍵字參數(shù)值要對得上,可用字典當(dāng)關(guān)鍵字參數(shù)傳入值,字典前加**即可

>>> hash = {'name':'hoho','age':18}

>>> 'my name is {name},age is {age}'.format(name='hoho',age=19)

'my name is hoho,age is 19'

>>> 'my name is {name},age is {age}'.format(**hash)

'my name is hoho,age is 18'

3、填充與格式化

:[填充字符][對齊方式 ][寬度]

1

2

3

4

5

6

>>> '{0:*>10}'.format(10) ##右對齊

'********10'

>>> '{0:*<10}'.format(10) ##左對齊

'10********'

>>> '{0:*^10}'.format(10) ##居中對齊

'****10****'

4、精度與進(jìn)制

1

2

3

4

5

6

7

8

9

10

>>> '{0:.2f}'.format(1/3)

'0.33'

>>> '{0:b}'.format(10) #二進(jìn)制化妝

'1010'

>>> '{0:o}'.format(10) #八進(jìn)制

'12'

>>> '{0:x}'.format(10) #16進(jìn)制

'a'

>>> '{:,}'.format(12369132698) #千分位格式化

'12,369,132,698'

5、使用索引

在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í),會(huì)先調(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ù)值的不同自動(dòng)選擇%e或%f: %g

根據(jù)數(shù)值的不同自動(dòng)選擇%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也不能事先指定,會(huì)在程序運(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。

這是這本書到此為止看起來最復(fù)雜的內(nèi)容。不過如果記不住,或不想那么耐煩,完全可以全部用%s代替,或者用多個(gè)"+"來構(gòu)造類似的輸出字符串。這里的%真有點(diǎn)除法的味道,怪不得設(shè)計(jì)者會(huì)選擇用%這個(gè)除號。

象C 中的sprintf函數(shù)一樣,可以用“%”來格式化字符串

Table 3.1. 字符串格式化代碼

格式描述

%%百分號標(biāo)記

%c字符及其ASCII碼

%s字符串

%d有符號整數(shù)(十進(jìn)制)

%u無符號整數(shù)(十進(jìn)制)

%o無符號整數(shù)(八進(jìn)制)

%x無符號整數(shù)(十六進(jìn)制)

%X無符號整數(shù)(十六進(jìn)制大寫字符)

%e浮點(diǎn)數(shù)字(科學(xué)計(jì)數(shù)法)

%E浮點(diǎn)數(shù)字(科學(xué)計(jì)數(shù)法,用E代替e)

%f浮點(diǎn)數(shù)字(用小數(shù)點(diǎn)符號)

%g浮點(diǎn)數(shù)字(根據(jù)值的大小采用%e或%f)

%G浮點(diǎn)數(shù)字(類似于%g)

%p指針(用十六進(jìn)制打印值的內(nèi)存地址)

%n存儲(chǔ)輸出字符的數(shù)量放進(jìn)參數(shù)列表的下一個(gè)變量中

總結(jié)

以上是生活随笔為你收集整理的python中格式化字符串的作用_python中字符串格式化的意义(化妆)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。