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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python format格式化输出填充符号不起作用_Python格式化输出——format用法示例

發(fā)布時間:2024/9/27 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python format格式化输出填充符号不起作用_Python格式化输出——format用法示例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

format OR %

提到Python中的格式化輸出方法,一般來說有以下兩種方式:

print('hello %s' % 'world')

# hello world

print('hello {}'.format('world'))

# hello world

到底哪種好呢,反正對我來說,用了.format()之后就再也不想用%了。

format()不用理會數據類型,%s,%f等等我記不完;

format()功能更豐富,填充方式,對齊方式都很靈活,讓你的打印效果更美觀;

format()是官方推薦的,%指不定就在未來版本中給廢棄掉了。

基本用法

print('{} {}'.format('hello', 'world')) # 最基本的

print('{0} {1}'.format('hello', 'world')) # 通過位置參數

print('{0} {1} {0}'.format('hello', 'world')) # 單個參數多次輸出

"""輸出結果

hello world

hello world

hello world hello

"""

關鍵詞定位

# 通過關鍵詞參數

print('我的名字是{name},我今年{age}歲了。'.format(name='小明', age='12'))

# 與位置參數一樣,單個參數也能多次輸出

print('{name}說:"我的名字是{name},我今年{age}歲了。"'.format(name='小明', age='12'))

"""輸出結果

我的名字是小明,我今年12歲了。

小明說:"我的名字是小明,我今年12歲了。"

"""

可變參數

既然format()是一個方法,那是不是也接受*args和**kwargs形式的傳參呢,答案是肯定的。

# 傳入list

data = ['hello', 'world']

print('{0} {1}'.format(*data))

# 傳入dict

data = {'name': '小明', 'age': 12}

print('我的名字是{name},我今年{age}歲了。'.format(**data))

# 混用

data_1 = ['hello', 'world']

data_2 = {'name': '小明', 'age': 12}

print('{0} {1} 我的名字是{name},我今年{age}歲了,{0}!'.format(*data_1, **data_2))

"""輸出結果

hello world

我的名字是小明,我今年12歲了。

hello world 我的名字是小明,我今年12歲了,hello!

"""

固定寬度

format()可以指定輸出寬度為多少,當字符串長度少于設定值的時候,默認用空格填充:

data = [{'name': 'Mary', 'college': 'Tsinghua University'},

{'name': 'Micheal', 'college': 'Harvard University'},

{'name': 'James', 'college': 'Massachusetts Institute of Technology'}]

# 固定寬度輸出

for item in data:

print('{:10}{:40}'.format(item['name'], item['college']))

"""輸出結果

Mary Tsinghua University

Micheal Harvard University

James Massachusetts Institute of Technology

當然除了空格,我們也可以選擇其他字符來填充,譬如我想打印一條分割線,便可以選擇通過-來填充:

data = [{'name': 'Mary', 'college': 'Tsinghua University'},

{'name': 'Micheal', 'college': 'Harvard University'},

{'name': 'James', 'college': 'Massachusetts Institute of Technology'}]

# 固定寬度輸出

for item in data:

# 每輸出一條記錄之前打印一條分割線

# 選擇用其他字符來填充時需要指定對齊方式

print('{:-^60}'.format('我是分割線'))

print('{:10}{:40}'.format(item['name'], item['college']))

"""輸出結果

---------------------------我是分割線----------------------------

Mary Tsinghua University

---------------------------我是分割線----------------------------

Micheal Harvard University

---------------------------我是分割線----------------------------

James Massachusetts Institute of Technology

"""

對齊方式

format()支持左對齊,右對齊,居中,分別對應,^,具體怎么使用我們看實例:

data = [{'name': 'Mary', 'college': 'Tsinghua University'},

{'name': 'Micheal', 'college': 'Harvard University'},

{'name': 'James', 'college': 'Massachusetts Institute of Technology'}]

print('{:-^50}'.format('居中'))

for item in data:

print('{:^10}{:^40}'.format(item['name'], item['college']))

print('{:-^50}'.format('左對齊'))

for item in data:

print('{:<10}{:<40}'.format(item['name'], item['college']))

print('{:-^50}'.format('右對齊'))

for item in data:

print('{:>10}{:>40}'.format(item['name'], item['college']))

"""輸出結果

------------------------居中------------------------

Mary Tsinghua University

Micheal Harvard University

James Massachusetts Institute of Technology

-----------------------左對齊------------------------

Mary Tsinghua University

Micheal Harvard University

James Massachusetts Institute of Technology

-----------------------右對齊------------------------

Mary Tsinghua University

Micheal Harvard University

James Massachusetts Institute of Technology

"""

數字格式化

常用的示例如下:

# 取小數點后兩位

num = 3.1415926

print('小數點后兩位:{:.2f}'.format(num))

# 帶+/-輸出

num = -3.1415926

print('帶正/負符號:{:+.2f}'.format(num))

# 轉為百分比

num = 0.34534

print('百分比:{:.2%}'.format(num))

# 科學計數法

num = 12305800000

print('科學計數法:{:.2e}'.format(num))

# ,分隔

num = 12305800000

print('","分隔:{:,}'.format(num))

# 轉為二進制

num = 15

print('二進制:{:b}'.format(num))

# 十六進制

num = 15

print('十六進制:{:x}'.format(num))

# 八進制

num = 15

print('八進制:{:o}'.format(num))

"""輸出結果

小數點后兩位:3.14

帶正/負符號:-3.14

百分比:34.53%

科學計數法:1.23e+10

","分隔:12,305,800,000

二進制:1111

十六進制:f

八進制:17

"""

輸出花括號

當然,如果我們想輸出的{}的時候怎么辦呢?

# 輸出花括號

print('我是{{{}}}'.format('Awesome_Tang'))

"""輸出結果

我是{Awesome_Tang}

"""

花式玩法

其實結合以上這些特性,我們可以來點好玩點,譬如說自己寫一個進度條:

import time

length = 1000

for i in range(1, length + 1):

percent = i / length

bar = '▉' * int(i // (length / 50))

time.sleep(0.01)

print('\r進度條:|{:<50}|{:>7.1%}'.format(bar, percent), end='')

print('\n')

效果如下:

現在你覺得%和str.format()哪個更好用呢?

總結

以上是生活随笔為你收集整理的python format格式化输出填充符号不起作用_Python格式化输出——format用法示例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。