<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
使用 % 操作符對各種型別的資料進行格式化輸出,這是早期 Python提供的方法。
字串型別(str)提供了 format() 方法對字串進行格式化。format() 方法的語法格式如下:
str.format(args)
在該方法中,str 用於指定字串的顯示樣式;args 用於指定要進行格式轉換的項,如果有多項,之間有逗號進行分割。
在建立顯示樣式模板時,需要使用{}和:來指定預留位置,其完整的語法格式如下:
{ [index][ : [ [fill] align] [sign] [#] [width] [.precision] [type] ] }
格式中用 [] 括起來的引數都是可選引數,即可以使用,也可以不使用。各個引數的含義如下:
表 1 align引數及含義
字元 | 含義 |
---|---|
< | 資料左對齊 |
> | 資料右對齊 |
= | 資料右對齊,同時將符號放置在填充內容的最左側,該選項只對數位型別有效 |
^ | 資料居中,此選項需和 width 引數一起使用 |
表 2 sign引數以含義
字元 | 含義 |
---|---|
+ | 正數前加正號,負數前加負號 |
- | 正數前不加正號,負數前加負號 |
空格 | 正數前加空格,負數前加負號 |
# | 對於二進位制數、八進位制數和十六進位制數,使用此引數,各進位制數前會分別顯示 0b、0o、0x字首;反之則不顯示字首 |
表 3 type預留位置型別及含義
字元 | 含義 |
---|---|
s | 對字串型別格式化 |
d | 十進位制整數 |
c | 將十進位制整數自動轉換成對應的 Unicode 字元 |
e 或者 E | 轉換成科學計數法後,再格式化輸出 |
g 或 G | 自動在 e 和 f(或 E 和 F)中切換 |
b | 將十進位制數自動轉換成二進位制表示,再格式化輸出 |
o | 將十進位制數自動轉換成八進位製表示,再格式化輸出 |
x 或者 X | 將十進位制數自動轉換成十六進位製表示,再格式化輸出 |
f 或者 F | 轉換為浮點數(預設小數點後保留 6 位),再格式化輸出 |
% | 顯示百分比(預設顯示小數點後 6 位) |
def func1(): str = "網站名稱:{:>20s}t網址:{:s}" print(str.format("Python中文網", "http://www.python-china.com/")) if __name__ == '__main__': func1()
輸出結果為:
網站名稱: Python中文網 網址:http://www.python-china.com/
在實際開發中,數值型別有多種顯示需求,比如貨幣形式、百分比形式等,使用 format() 方法可以將數值格式化為不同的形式。
def func2(): # 以貨幣形式顯示 print("貨幣形式:{:,d}".format(1000000)) # 科學計數法表示 print("科學計數法:{:E}".format(1200.12)) # 以十六進位製表示 print("100的十六進位制:{:#x}".format(100)) # 輸出百分比形式 print("0.01的百分比表示:{:.0%}".format(0.01)) if __name__ == '__main__': # func1() func2()
輸出結果為:
貨幣形式:1,000,000
科學計數法:1.200120E+03
100的十六進位制:0x64
0.01的百分比表示:1%
def func3(): print("{} {}".format("hello", "world")) # 不設定指定位置,按預設順序 print("{0} {1}".format("hello", "world")) # 設定指定位置 print("{1} {0} {1}".format("hello", "world")) # 設定指定位置 if __name__ == '__main__': # func1() # func2() func3()
輸出結果為:
hello world
hello world
world hello world
def func4(): # 通過變數設定引數 print("My name is {name},and I am {age} years old!".format(name="zhangsan", age="25")) # 通過字典設定引數,需要解包 info = {"name": "zhangsan", "age": "25"} print("My name is {name},and I am {age} years old!".format(**info)) # 通過列表索引設定引數 msg = ["zhangsan", "25"] print("My name is {0[0]},and I am {0[1]} years old!".format(msg)) if __name__ == '__main__': # func1() # func2() # func3() func4()
輸出結果為:
My name is zhangsan,and I am 25 years old!
My name is zhangsan,and I am 25 years old!
My name is zhangsan,and I am 25 years old!
def func5(): print("{:.2f}".format(3.1415926)) # 保留小數點後兩位 print("{:+.2f}".format(3.1415926)) # 帶符號保留小數點後兩位 print("{:+.2f}".format(-1)) # 帶符號保留小數點後兩位 print("{:.0f}".format(2.71828)) # 不帶小數 print("{:0>2d}".format(5)) # 數位補零 (填充左邊, 寬度為2) print("{:x<4d}".format(5)) # 數位補x (填充右邊, 寬度為4) print("{:x<4d}".format(10)) # 數位補x (填充右邊, 寬度為4) print("{:,}".format(1000000)) # 以逗號分隔的數位格式 print("{:.2%}".format(0.25)) # 百分比格式 print("{:.2e}".format(1000000000)) # 指數記法 print("|{:>10d}|".format(13)) # 右對齊 (預設, 寬度為10) print("|{:<10d}|".format(13)) # 左對齊 (寬度為10) print("|{:^10d}|".format(13)) # 中間對齊 (寬度為10) print("{}今年{{25}}歲了".format("張三")) # 使用大括號 {} 來跳脫大括號 if __name__ == '__main__': # func1() # func2() # func3() # func4() func5()
輸出結果為:
3.14
+3.14
-1.00
3
05
5xxx
10xx
1,000,000
25.00%
1.00e+09
| 13|
|13 |
| 13 |
張三今年{25}歲了
Process finished with exit code 0
簡單提示:
def func6(): print('%o' % 20) print('%d' % 20) print('%x' % 20) if __name__ == '__main__': # func1() # func2() # func3() # func4() # func5() func6()
輸出結果為:
24
20
14
簡單提示:
def func7(): print('%f' % 1.11) # 預設保留6位小數 print('%.1f' % 1.11) # 取1位小數 print('%e' % 1.11) # 預設6位小數,用科學計數法 print('%.3e' % 1.11) # 取3位小數,用科學計數法 print('%g' % 1111.1111) # 預設6位有效數位 print('%.7g' % 1111.1111) # 取7位有效數位 print('%.2g' % 1111.1111) # 取2位有效數位,自動轉換為科學計數法 if __name__ == '__main__': # func1() # func2() # func3() # func4() # func5() # func6() func7()
輸出結果為:
1.110000
1.1
1.110000e+00
1.110e+00
1111.11
1111.111
1.1e+03
簡單提示:
def func8(): print('%s' % 'hello world') # 字串輸出 print('%20s' % 'hello world') # 右對齊,取20位,不夠則補位 print('%-20s' % 'hello world') # 左對齊,取20位,不夠則補位 print('%.2s' % 'hello world') # 取2位 print('%10.2s' % 'hello world') # 右對齊,取2位 print('%-10.2s' % 'hello world') # 左對齊,取2位 if __name__ == '__main__': # func1() # func2() # func3() # func4() # func5() # func6() # func7() func8()
輸出結果為:
hello world
hello world
hello world
he
he
he
編寫程式,調查使用者的姓名、年齡、職業和薪水,然後格式化輸出使用者資訊,格式如下所示
------------info of 張三------------
Name:張三
Age:24
Job:計算機
Salary:52000
----------------end---------------
def func9(): name = input("Name:") age = int(input("Age:")) job = input("Job:") salary = int(input("Salary:")) msg = """ ------------info of %s------------ Name:%s Age:%d Job:%s Salary:%d ----------------end--------------- """ % (name, name, age, job, salary) print(msg) if __name__ == '__main__': # func1() # func2() # func3() # func4() # func5() # func6() # func7() # func8() func9()
輸出結果為:
Name:BLACKPINK
Age:18
Job:sing
Salary:6688
------------info of BLACKPINK------------
Name:BLACKPINK
Age:18
Job:sing
Salary:6688
----------------end---------------
def func1(): str = "網站名稱:{:>20s}t網址:{:s}" print(str.format("Python中文網", "http://www.python-china.com/")) def func2(): # 以貨幣形式顯示 print("貨幣形式:{:,d}".format(1000000)) # 科學計數法表示 print("科學計數法:{:E}".format(1200.12)) # 以十六進位製表示 print("100的十六進位制:{:#x}".format(100)) # 輸出百分比形式 print("0.01的百分比表示:{:.0%}".format(0.01)) def func3(): print("{} {}".format("hello", "world")) # 不設定指定位置,按預設順序 print("{0} {1}".format("hello", "world")) # 設定指定位置 print("{1} {0} {1}".format("hello", "world")) # 設定指定位置 def func4(): # 通過變數設定引數 print("My name is {name},and I am {age} years old!".format(name="zhangsan", age="25")) # 通過字典設定引數,需要解包 info = {"name": "zhangsan", "age": "25"} print("My name is {name},and I am {age} years old!".format(**info)) # 通過列表索引設定引數 msg = ["zhangsan", "25"] print("My name is {0[0]},and I am {0[1]} years old!".format(msg)) def func5(): print("{:.2f}".format(3.1415926)) # 保留小數點後兩位 print("{:+.2f}".format(3.1415926)) # 帶符號保留小數點後兩位 print("{:+.2f}".format(-1)) # 帶符號保留小數點後兩位 print("{:.0f}".format(2.71828)) # 不帶小數 print("{:0>2d}".format(5)) # 數位補零 (填充左邊, 寬度為2) print("{:x<4d}".format(5)) # 數位補x (填充右邊, 寬度為4) print("{:x<4d}".format(10)) # 數位補x (填充右邊, 寬度為4) print("{:,}".format(1000000)) # 以逗號分隔的數位格式 print("{:.2%}".format(0.25)) # 百分比格式 print("{:.2e}".format(1000000000)) # 指數記法 print("|{:>10d}|".format(13)) # 右對齊 (預設, 寬度為10) print("|{:<10d}|".format(13)) # 左對齊 (寬度為10) print("|{:^10d}|".format(13)) # 中間對齊 (寬度為10) print("{}今年{{25}}歲了".format("張三")) # 使用大括號 {} 來跳脫大括號 def func6(): print('%o' % 20) print('%d' % 20) print('%x' % 20) def func7(): print('%f' % 1.11) # 預設保留6位小數 print('%.1f' % 1.11) # 取1位小數 print('%e' % 1.11) # 預設6位小數,用科學計數法 print('%.3e' % 1.11) # 取3位小數,用科學計數法 print('%g' % 1111.1111) # 預設6位有效數位 print('%.7g' % 1111.1111) # 取7位有效數位 print('%.2g' % 1111.1111) # 取2位有效數位,自動轉換為科學計數法 def func8(): print('%s' % 'hello world') # 字串輸出 print('%20s' % 'hello world') # 右對齊,取20位,不夠則補位 print('%-20s' % 'hello world') # 左對齊,取20位,不夠則補位 print('%.2s' % 'hello world') # 取2位 print('%10.2s' % 'hello world') # 右對齊,取2位 print('%-10.2s' % 'hello world') # 左對齊,取2位 def func9(): name = input("Name:") age = int(input("Age:")) job = input("Job:") salary = int(input("Salary:")) msg = """ ------------info of %s------------ Name:%s Age:%d Job:%s Salary:%d ----------------end--------------- """ % (name, name, age, job, salary) print(msg) if __name__ == '__main__': print("------func1------") func1() print("------func2------") func2() print("------func3------") func3() print("------func4------") func4() print("------func5------") func5() print("------func6------") func6() print("------func7------") func7() print("------func8------") func8() print("------func9------") func9()
輸出結果為:
D:SoftWarePythonAnaconda3envsspiderpython.exe E:/Document/programmLanguageExper/Python/spider/pythonBase/python基礎.py
------func1------
網站名稱: Python中文網 網址:http://www.python-china.com/
------func2------
貨幣形式:1,000,000
科學計數法:1.200120E+03
100的十六進位制:0x64
0.01的百分比表示:1%
------func3------
hello world
hello world
world hello world
------func4------
My name is zhangsan,and I am 25 years old!
My name is zhangsan,and I am 25 years old!
My name is zhangsan,and I am 25 years old!
------func5------
3.14
+3.14
-1.00
3
05
5xxx
10xx
1,000,000
25.00%
1.00e+09
| 13|
|13 |
| 13 |
張三今年{25}歲了
------func6------
24
20
14
------func7------
1.110000
1.1
1.110000e+00
1.110e+00
1111.11
1111.111
1.1e+03
------func8------
hello world
hello world
hello world
he
he
he
------func9------
Name:BLACKPINK
Age:18
Job:SING
Salary:6686
------------info of BLACKPINK------------
Name:BLACKPINK
Age:18
Job:SING
Salary:6686
----------------end---------------
Process finished with exit code 0
以上就是Python實現格式化輸出的範例詳解的詳細內容,更多關於Python格式化輸出的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45