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

歡迎訪問 生活随笔!

生活随笔

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

python

python语言format用法_python基础_格式化输出(%用法和format用法)

發(fā)布時(shí)間:2024/10/8 python 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python语言format用法_python基础_格式化输出(%用法和format用法) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

%用法

1、整數(shù)的輸出

%o —— oct 八進(jìn)制

%d —— dec 十進(jìn)制

%x —— hex 十六進(jìn)制

>>> print('%o' % 20)24

>>> print('%d' % 20)20

>>> print('%x' % 20)14

2、浮點(diǎn)數(shù)輸出

(1)格式化輸出

%f ——保留小數(shù)點(diǎn)后面六位有效數(shù)字

%.3f,保留3位小數(shù)位

%e ——保留小數(shù)點(diǎn)后面六位有效數(shù)字,指數(shù)形式輸出

%.3e,保留3位小數(shù)位,使用科學(xué)計(jì)數(shù)法

%g ——在保證六位有效數(shù)字的前提下,使用小數(shù)方式,否則使用科學(xué)計(jì)數(shù)法

%.3g,保留3位有效數(shù)字,使用小數(shù)或科學(xué)計(jì)數(shù)法

>>> print('%f' % 1.11) #默認(rèn)保留6位小數(shù)

1.110000

>>> print('%.1f' % 1.11) #取1位小數(shù)

1.1

>>> print('%e' % 1.11) #默認(rèn)6位小數(shù),用科學(xué)計(jì)數(shù)法

1.110000e+00

>>> print('%.3e' % 1.11) #取3位小數(shù),用科學(xué)計(jì)數(shù)法

1.110e+00

>>> print('%g' % 1111.1111) #默認(rèn)6位有效數(shù)字

1111.11

>>> print('%.7g' % 1111.1111) #取7位有效數(shù)字

1111.111

>>> print('%.2g' % 1111.1111) #取2位有效數(shù)字,自動(dòng)轉(zhuǎn)換為科學(xué)計(jì)數(shù)法

1.1e+03

(2)內(nèi)置round()

round(number[, ndigits])

參數(shù):

number - 這是一個(gè)數(shù)字表達(dá)式。

ndigits - 表示從小數(shù)點(diǎn)到最后四舍五入的位數(shù)。默認(rèn)值為0。

返回值

該方法返回x的小數(shù)點(diǎn)舍入為n位數(shù)后的值。

round()函數(shù)只有一個(gè)參數(shù),不指定位數(shù)的時(shí)候,返回一個(gè)整數(shù),而且是最靠近的整數(shù),類似于四舍五入,當(dāng)指定取舍的小數(shù)點(diǎn)位數(shù)的時(shí)候,一般情況也是使用四舍五入的規(guī)則,但是碰到.5的情況時(shí),如果要取舍的位數(shù)前的小數(shù)是奇數(shù),則直接舍棄,如果是偶數(shù)則向上取舍。

注:“.5”這個(gè)是一個(gè)“坑”,且python2和python3出來的接口有時(shí)候是不一樣的,盡量避免使用round()函數(shù)吧

>>> round(1.1125) #四舍五入,不指定位數(shù),取整

1

>>> round(1.1135,3) #取3位小數(shù),由于3為奇數(shù),則向下“舍”

1.113

>>> round(1.1125,3) #取3位小數(shù),由于2為偶數(shù),則向上“入”

1.113

>>> round(1.5) #無法理解,查閱一些資料是說python會(huì)對(duì)數(shù)據(jù)進(jìn)行截?cái)?#xff0c;沒有深究

2

>>> round(2.5) #無法理解

2

>>> round(1.675,2) #無法理解

1.68

>>> round(2.675,2) #無法理解

2.67

>>>

3、字符串輸出

%s

%10s——右對(duì)齊,占位符10位

%-10s——左對(duì)齊,占位符10位

%.2s——截取2位字符串

%10.2s——10位占位符,截取兩位字符串

>>> print('%s' % 'hello world') #字符串輸出

hello world>>> print('%20s' % 'hello world') #右對(duì)齊,取20位,不夠則補(bǔ)位

hello world>>> print('%-20s' % 'hello world') #左對(duì)齊,取20位,不夠則補(bǔ)位

hello world>>> print('%.2s' % 'hello world') #取2位

he>>> print('%10.2s' % 'hello world') #右對(duì)齊,取2位

he>>> print('%-10.2s' % 'hello world') #左對(duì)齊,取2位

he

4、 其他

(1)字符串格式代碼

(2)常用轉(zhuǎn)義字符

format用法

相對(duì)基本格式化輸出采用‘%’的方法,format()功能更強(qiáng)大,該函數(shù)把字符串當(dāng)成一個(gè)模板,通過傳入的參數(shù)進(jìn)行格式化,并且使用大括號(hào)‘{}’作為特殊字符代替‘%’

位置匹配

(1)不帶編號(hào),即“{}”

(2)帶數(shù)字編號(hào),可調(diào)換順序,即“{1}”、“{2}”

(3)帶關(guān)鍵字,即“{a}”、“{tom}”

>>> print('{} {}'.format('hello','world')) #不帶字段

hello world>>> print('{0} {1}'.format('hello','world')) #帶數(shù)字編號(hào)

hello world>>> print('{0} {1} {0}'.format('hello','world')) #打亂順序

hello world hello>>> print('{1} {1} {0}'.format('hello','world'))

world world hello>>> print('{a} {tom} {a}'.format(tom='hello',a='world')) #帶關(guān)鍵字

world hello world

>>> '{0}, {1}, {2}'.format('a', 'b', 'c')'a, b, c'

>>> '{}, {}, {}'.format('a', 'b', 'c') #3.1+版本支持

'a, b, c'

>>> '{2}, {1}, {0}'.format('a', 'b', 'c')'c, b, a'

>>> '{2}, {1}, {0}'.format(*'abc') #可打亂順序

'c, b, a'

>>> '{0}{1}{0}'.format('abra', 'cad') #可重復(fù)

'abracadabra'

通過位置匹配

通過位置匹配

>>> 'Coordinates: {latitude}, {longitude}'.format(latitude='37.24N', longitude='-115.81W')'Coordinates: 37.24N, -115.81W'

>>> coord = {'latitude': '37.24N', 'longitude': '-115.81W'}>>> 'Coordinates: {latitude}, {longitude}'.format(**coord)'Coordinates: 37.24N, -115.81W'

通過名字匹配

>>> c = 3-5j

>>> ('The complex number {0} is formed from the real part {0.real}'...'and the imaginary part {0.imag}.').format(c)'The complex number (3-5j) is formed from the real part 3.0 and the imaginary part -5.0.'

>>> classPoint:

...def __init__(self, x, y):

... self.x, self.y=x, y

...def __str__(self):

...return 'Point({self.x}, {self.y})'.format(self=self)

...>>> str(Point(4, 2))'Point(4, 2)'

通過對(duì)象屬性匹配

>>>

>>> coord = (3, 5)>>> 'X: {0[0]}; Y: {0[1]}'.format(coord)'X: 3; Y: 5'

>>> a = {'a': 'test_a', 'b': 'test_b'}>>> 'X: {0[a]}; Y: {0[b]}'.format(a)'X: test_a; Y: test_b'

通過下標(biāo)或key匹配參數(shù)

格式轉(zhuǎn)換

'b' - 二進(jìn)制。將數(shù)字以2為基數(shù)進(jìn)行輸出。

'c' - 字符。在打印之前將整數(shù)轉(zhuǎn)換成對(duì)應(yīng)的Unicode字符串。

'd' - 十進(jìn)制整數(shù)。將數(shù)字以10為基數(shù)進(jìn)行輸出。

'o' - 八進(jìn)制。將數(shù)字以8為基數(shù)進(jìn)行輸出。

'x' - 十六進(jìn)制。將數(shù)字以16為基數(shù)進(jìn)行輸出,9以上的位數(shù)用小寫字母。

'e' - 冪符號(hào)。用科學(xué)計(jì)數(shù)法打印數(shù)字。用'e'表示冪。

'g' - 一般格式。將數(shù)值以fixed-point格式輸出。當(dāng)數(shù)值特別大的時(shí)候,用冪形式打印。

'n' - 數(shù)字。當(dāng)值為整數(shù)時(shí)和'd'相同,值為浮點(diǎn)數(shù)時(shí)和'g'相同。不同的是它會(huì)根據(jù)區(qū)域設(shè)置插入數(shù)字分隔符。

'%' - 百分?jǐn)?shù)。將數(shù)值乘以100然后以fixed-point('f')格式打印,值后面會(huì)有一個(gè)百分號(hào)。

>>> print('{0:b}'.format(3))11

>>> print('{:c}'.format(20))>>> print('{:d}'.format(20))20

>>> print('{:o}'.format(20))24

>>> print('{:x}'.format(20))14

>>> print('{:e}'.format(20))2.000000e+01

>>> print('{:g}'.format(20.1))20.1

>>> print('{:f}'.format(20))20.000000

>>> print('{:n}'.format(20))20

>>> print('{:%}'.format(20))2000.000000%

>>>

進(jìn)階用法

進(jìn)制轉(zhuǎn)換

>>> #format also supports binary numbers

>>> "int: {0:d}; hex: {0:x}; oct: {0:o}; bin: {0:b}".format(42)'int: 42; hex: 2a; oct: 52; bin: 101010'

>>> #with 0x, 0o, or 0b as prefix:

>>> "int: {0:d}; hex: {0:#x}; oct: {0:#o}; bin: {0:#b}".format(42) #在前面加“#”,則帶進(jìn)制前綴

'int: 42; hex: 0x2a; oct: 0o52; bin: 0b101010'

2進(jìn)制、8進(jìn)制、10進(jìn)制、16進(jìn)制

左中右對(duì)齊及位數(shù)補(bǔ)全

(1)< (默認(rèn))左對(duì)齊、> 右對(duì)齊、^ 中間對(duì)齊、= (只用于數(shù)字)在小數(shù)點(diǎn)后進(jìn)行補(bǔ)齊

(2)取位數(shù)“{:4s}”、"{:.2f}"等

>>> print('{} and {}'.format('hello','world')) #默認(rèn)左對(duì)齊

hello andworld>>> print('{:10s} and {:>10s}'.format('hello','world')) #取10位左對(duì)齊,取10位右對(duì)齊

hello andworld>>> print('{:^10s} and {:^10s}'.format('hello','world')) #取10位中間對(duì)齊

hello andworld>>> print('{} is {:.2f}'.format(1.123,1.123)) #取2位小數(shù)

1.123 is 1.12

>>> print('{0} is {0:>10.2f}'.format(1.123)) #取2位小數(shù),右對(duì)齊,取10位

1.123 is 1.12

>>> '{:<30}'.format('left aligned') #左對(duì)齊

'left aligned'

>>> '{:>30}'.format('right aligned') #右對(duì)齊

'right aligned'

>>> '{:^30}'.format('centered') #中間對(duì)齊

'centered'

>>> '{:*^30}'.format('centered') #使用“*”填充

'***********centered***********'

>>>'{:0=30}'.format(11) #還有“=”只能應(yīng)用于數(shù)字,這種方法可用“>”代替

'000000000000000000000000000011'

左中右對(duì)齊及位數(shù)補(bǔ)齊

正負(fù)符號(hào)顯示

>>> '{:+f}; {:+f}'.format(3.14, -3.14) #總是顯示符號(hào)

'+3.140000; -3.140000'

>>> '{: f}; {: f}'.format(3.14, -3.14) #若是+數(shù),則在前面留空格

'3.140000; -3.140000'

>>> '{:-f}; {:-f}'.format(3.14, -3.14) #-數(shù)時(shí)顯示-,與'{:f}; {:f}'一致

'3.140000; -3.140000'

正負(fù)符號(hào)顯示 %+f, %-f, 和 % f的用法

百分?jǐn)?shù)%

>>> points = 19

>>> total = 22

>>> 'Correct answers: {:.2%}'.format(points/total)'Correct answers: 86.36%'

百分?jǐn)?shù)%

時(shí)間

>>> importdatetime>>> d = datetime.datetime(2010, 7, 4, 12, 15, 58)>>> '{:%Y-%m-%d %H:%M:%S}'.format(d)'2010-07-04 12:15:58'

時(shí)間

逗號(hào)","分隔金錢,沒以前進(jìn)位

>>> '{:,}'.format(1234567890)'1,234,567,890'

逗號(hào)","分隔金錢

占位符嵌套

>>> for align, text in zip('<^>', ['left', 'center', 'right']):

...'{0:{fill}{align}16}'.format(text, fill=align, align=align)

...'left<<<<<<<<<<<<'

'^^^^^center^^^^^'

'>>>>>>>>>>>right'

>>>

>>> octets = [192, 168, 0, 1]>>> '{:02X}{:02X}{:02X}{:02X}'.format(*octets)'C0A80001'

>>> int(_, 16) #官方文檔給出來的,無法在IDLE復(fù)現(xiàn)

3232235521

>>>

>>> width = 5

>>> for num in range(5,12):

...for base in 'dXob':

...print('{0:{width}{base}}'.format(num, base=base, width=width), end=' ')

...print()

...5 5 5 101

6 6 6 110

7 7 7 111

8 8 10 1000

9 9 11 1001

10 A 12 1010

11 B 13 1011

占位符嵌套

占位符%s和%r

"""replacement_field ::= "{" [field_name] ["!" conversion] [":" format_spec] "}"

conversion ::= "r" | "s" | "a"

這里只有三個(gè)轉(zhuǎn)換符號(hào),用"!"開頭。

"!r"對(duì)應(yīng) repr();"!s"對(duì)應(yīng) str(); "!a"對(duì)應(yīng)ascii()。"""

>>> "repr() shows quotes: {!r}; str() doesn't: {!s}".format('test1', 'test2')"repr() shows quotes: 'test1'; str() doesn't: test2" #輸出結(jié)果是一個(gè)帶引號(hào),一個(gè)不帶

占位符%s和%r

format的用法變形

#a.format(b)

>>> "{0} {1}".format("hello","world")'hello world'

#f"xxxx"#可在字符串前加f以達(dá)到格式化的目的,在{}里加入對(duì)象,此為format的另一種形式:

>>> a = "hello"

>>> b = "world"

>>> f"{a} "

'hello world'name= 'jack'age= 18sex= 'man'job= "IT"salary= 9999.99

print(f'my name is {name.capitalize()}.')print(f'I am {age:*^10} years old.')print(f'I am a {sex}')print(f'My salary is {salary:10.3f}')#結(jié)果

my name isJack.

I am****18****years old.

I am a man

My salaryis 9999.990

參考o(jì)r轉(zhuǎn)發(fā)

總結(jié)

以上是生活随笔為你收集整理的python语言format用法_python基础_格式化输出(%用法和format用法)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 久久精品久久国产 | 成人在线播放av | 秋霞电影一区二区 | 亚洲成av人片在线观看无码 | 深爱激情综合 | 国产精品久久久久久久久借妻 | 午夜视频福利网站 | 欧美永久视频 | 亚洲欧洲日本国产 | 91一区在线 | 国产精品18 | 日韩视频 中文字幕 | 五月婷婷综合激情网 | 污污内射在线观看一区二区少妇 | 成年人免费看 | 中文在线日本 | cao死你 | 亚洲一级大片 | wwwxxx日本免费| 国产精品久久久久久久免费 | 小情侣高清国产在线播放 | 成人黄页网站 | 久草最新| 少妇第一次交换又紧又爽 | 97成人人妻一区二区三区 | 亚洲一区二区网站 | 日韩不卡视频在线观看 | 天天躁日日躁狠狠躁 | 在线观看免费高清在线观看 | 日韩脚交footjobhd | 国产农村妇女毛片精品久久 | 91视频免费| 134vcc影院免费观看 | 亚洲第一国产视频 | 日日夜夜中文字幕 | 色狠狠操| 超碰视屏 | 深夜毛片| a级片在线 | 亚洲综合无码一区二区 | jizz成熟丰满老女人 | 日本黄页网站免费大全 | 秋霞伦理一区二区 | 亚洲无码精品一区二区三区 | 亚洲最大视频网站 | 91久久精品国产91性色tv | 色老头一区二区三区 | 国产人成免费视频 | 中文字幕人妻一区二 | 伦理片一区二区三区 | 国产精品久久久久影院色老大 | 在线午夜视频 | 日韩国产区 | 欧美日韩精品久久久免费观看 | 亚洲无码精品免费 | 日韩av片免费观看 | 伊人称影院 | 丁香六月欧美 | 久久人人澡 | 性感少妇在线观看 | 春色av | 欧美群交射精内射颜射潮喷 | 艳妇臀荡乳欲伦交换在线播放 | 亚洲一区精品视频在线观看 | 免费av在线电影 | 99re国产在线 | 亚洲福利久久 | 国产欧美一区在线观看 | 中字幕视频在线永久在线观看免费 | 成人精品黄段子 | 狠狠干美女 | 日韩福利视频 | 黄色片子视频 | 中文字幕h | 香蕉大久久 | av看片资源| 国产又粗又长又黄 | 少妇aa| 伊人加勒比 | 巨物撞击尤物少妇呻吟 | 999久久| 国产成人精 | 天堂91| 日韩和一区二区 | 亚洲精品在线免费播放 | 久久久久久久久久久久久女过产乱 | 欧美成人一区在线观看 | 日本精品在线观看视频 | 日韩视频在线免费 | 亚洲毛片儿| 在线色网站 | 亚洲精品在线免费观看视频 | 懂色av蜜臀av粉嫩av分享吧最新章节 | 我想看一级黄色片 | 男女日批视频 | 三上悠亚一区二区在线观看 | 已满18岁免费观看电视连续剧 | 在线观看成年人视频 | 欧美福利视频在线 |