當前位置:首頁 » 編程語言 » python百分比格式

python百分比格式

發布時間: 2023-06-04 17:31:15

python中「format後的參數排列順序必須按照格式字元串中槽{}的排列順序依次一一對應」為什麼錯誤謝謝

format函數實現字元串格式化的功能

基本語法為:

通過 : 和 {} 來控制字元串的操作

一、對字元串進行操作

1. 不設置指定位置,按默認順序插入

①當參數個數等於{}個數的時候

str_1 = "小明{}小美,可是小美{}小明".format("喜歡", "不喜歡")

print(str_1)

運行結果:

②當參數個數大於{}個數的時候

str_1 = "小明{}小美,可是小美{}小明".format("喜歡", "不喜歡", "也不喜歡", "更不喜歡")

print(str_1)

運行結果:

③當參數個數習小於{}個數的時候

str_1 = "小明{}小美,可是小美{}小明".format("喜歡")

print(str_1)

運行結果:

程序會報錯:越界

由此可以得出,當我們不指定參數位置的時候,format函數會幫我們按順序將其接收到的參數,填入到{}中。

2. 設置指定位置

當format接收到的參數個數大於{}或者我們想將不同{}替換為相同字元串的時候,我們可以在{}內指定接收第幾個參數。format接收的參數,從0開始。

str_1 = "小明{1}小美,可是小美{3}小明,小美{0}小明,小美{2}小華".format("不喜歡", "喜歡", "更喜歡", "很討厭")

print(str_1)

在這一句代碼中,分別為不同的{}指定了接收的參數位置。

運行結果:

很顯然,如果我們的{}的個數小於format的參數也是OK的。

str_1 = "小明{1}小美,可是小美{3}小明,小美{2}小華".format("不喜歡", "喜歡", "更喜歡", "很討厭")

print(str_1)

運行結果:

由此我們得出結論:

在使用format()函數的時候,我們給format()的個數是不限的,如果我們並沒有在{}中指定位置,那麼format()會自動按順序將參數填入{},而如果我們為{}指定了位置,那麼format()就會把指定位置的參數填入對應的{}中。

3.設置format()參數的值①直接在format()中進行賦值

str_1 = "博主:{name}, 博客地址:{url}".format(name="KaiSarH", url="https://blog.csdn.net/KaiSarH")

運行結果:

②通過傳遞多值參數向format傳遞參數進而對{}進行賦值

- 使用**傳遞字典。

在Python中,使用**可以傳遞一個字典參數,我們可以使用鍵名進行匹配,進而進行賦值

dict_1 = {"name": "KaiSarH",

"url": "https://blog.csdn.net/KaiSarH"}

str_2 = "博主:{name}, 博客地址:{url}".format(**dict_1)

運行結果:

我們向format()傳遞的字典參數,所包含的鍵值對,必須包含所有的{}名。只能多(正確),不能少(報錯)。

dict_1 = {"name": "KaiSarH",

"url": "https://blog.csdn.net/KaiSarH",

"login": "login information"}

str_2 = "博主:{name}, 博客地址:{url}".format(**dict_1)

print(str_2)

dict_1 = {"name": "KaiSarH",

"key": "https://blog.csdn.net/KaiSarH",

"login": "login information"}

str_4 = "博主:{name}, 博客地址:{url}".format(**dict_1)

print(str_4)

運行結果:

注意:我們可以向format()中傳遞多個字典,但是不可以含有相同鍵。

dict_1 = {"name": "KaiSarH",

"url": "https://blog.csdn.net/KaiSarH",

"login": "login information"}

str_2 = "博主:{name}, 博客地址:{url}".format(**dict_1)

dict_2 = {"name": "KaiSarH",

"key": "https://blog.csdn.net/KaiSarH",

"login": "login information"}

str_4 = "博主:{name}, 博客地址:{url}".format(**dict_1, **dict_2)

print(str_4)

運行結果:

- 傳遞列表

list_1 = ["KaiSarH","https://blog.csdn.net/KaiSarH"]

str_3 = "博主:{0[0]}, 博客地址:{0[1]}".format(list_1)

運行結果:

除了傳遞一個列表,我們也可以向format()中傳遞多個列表,只需保證取值的時候無誤就可以。

list_1 = ["ZhangSan","https://blog.csdn.net/KaiSarH"]

list_2 = ["KaiSarH", "http:www..com"]

str_3 = "博主:{1[0]}, 博客地址:{0[1]}".format(list_1, list_2)

運行結果:

③向format()中傳入對象,進行賦值

與列表相同,我們同樣可以向format()中傳遞多個對象,只要在賦值的之後做好對應就可以。

class Dog:

def __init__(self, name):

self.name = name

class Mouse:

def __init__(self, name):

self.name = name

tom = Dog("Tom")

jerry = Mouse("Jerry")

str_1 = "{0.name} want to eat {1.name}".format(tom, jerry)

print(str_1)

運行結果:

二、對數字進行格式化

對於數字的格式化,我們主要是在{}中進行設置格式化數字的多種方法

1.保留小數點後n位

格式:{:.nf}

print("{:.1f}".format(3.1415926535))

print("{:.3f}".format(3.1415926535))

print("{:.4f}".format(3.1415926535))

print("{:.6f}".format(3.1415926535))

運行結果:

2.帶符號保留小數點後n位

格式:{:+.nf}

print("{:+.1f}".format(3.1415926535))

print("{:+.3f}".format(-3.1415926535))

print("{:+.4f}".format(3.1415926535))

print("{:+.6f}".format(-3.1415926535))

運行結果:

{:.nf}和 {:+.nf}的區別

負數無區別,整數有無符號。

print("{:.1f}".format(3.1415926535))

print("{:+.1f}".format(3.1415926535))

print("{:.3f}".format(-3.1415926535))

print("{:+.3f}".format(-3.1415926535))

print("{:.4f}".format(3.1415926535))

print("{:+.4f}".format(3.1415926535))

print("{:.7f}".format(-3.1415926535))

print("{:+.7f}".format(-3.1415926535))

運行結果:

3.不帶小數(只保留整數)

格式:{:.0f}

print("{:.0f}".format(3.1415926535))

print("{:.0f}".format(-3.1415926535))

print("{:.0f}".format(3.8415926535))

運行結果:

4.如果整數的位數不足n位,在左邊進行數字補零。如果已經夠了n位,直接輸出

格式:{:0>nd}

print("{:0>2d}".format(5))

print("{:0>3d}".format(5))

print("{:0>5d}".format(123456))

運行結果:

5.如果整數的位數不足n位,在右邊進行x補充。如果已經夠了n位,直接輸出

格式:{:x<4d}

print("{:x<2d}".format(5))

print("{:x<3d}".format(5))

print("{:x<4d}".format(123456))

運行結果:

很顯然,在補充操作中,我們既可以指定在哪一邊補充,也可以指定補充的值為什麼。

我們也可以利用print("{:x>.2f}".format(3.1))或者{:x<.2f>

6.以逗號分隔數字格式,每三位加入一個,

格式:{:,}

print("{:,}".format(314156926))

運行結果:

7.百分比格式(在我理解,就是把數字×100,保留兩位數字,然後加一個百分號)

格式:{:.2%}

print("{:.2%}".format(0.27896))

運行結果:

8.指數記法

格式:{:.2e}

print("{:.2e}".format(100))

運行結果:

9.右對齊(默認寬度為10)

格式:{:>10d}

print("{:>10d}".format(100))

print("{:>10d}".format(2))

print("{:>10d}".format(12580))

運行結果:

10.左對齊(默認寬度為10)

格式:{:<10d}

print("{:<10d}".format(100))

print("{:<10d}".format(2))

print("{:<10d}".format(12580))

運行結果:

11.中間對齊(默認寬度為10)

格式:{:^10d}

print("{:^10d}".format(100))

print("{:^10d}".format(2))

print("{:^10d}".format(12580))

運行結果:

12.進制——b、d、o、x 分別是二進制、十進制、八進制、十六進制。

格式:

『{:b}'.format(11)

『{:d}'.format(11)

『{:\o}'.format(11)

『{:x}'.format(11)

『{:#x}'.format(11)

『{:#X}'.format(11)

print("{:b}".format(125))

print("{:d}".format(125))

print("{:o}".format(125))

print("{:x}".format(125))

print("{:#x}".format(125))

print("{:#X}".format(125))

運行結果:

⑵ python中如何計算百分數

a=5.1
b=4.2
printa/b
print"%.3f"%(a/b)

如果只是獲得普通的百分數,就直接a/b

如果是要保留小數點後面幾位,就要用下面的那種,比如保留小數點三位,就是"%.3f"

⑶ Python 百分數的輸入

例如輸入 10%
>>> a=input('請輸入百分比:')
請輸入百分比:'10%'
>>> a

⑷ Python:利用format格式輸出"百分數"

個人認為,format是最好用的格式輸出方法。
利用format將" 小數轉為對應的百分數 "輸出的操作如下:

說明:{:%}用來將小數轉換為百分數,其中的.2是保留兩位小數。所以{:.2%}就是:將小數轉為對應的百分數,並保留兩位小數輸出。

熱點內容
我配置很高了ae為什麼卡 發布:2025-05-17 14:54:50 瀏覽:167
python數據分析實戰pdf 發布:2025-05-17 14:49:42 瀏覽:950
海瀾之家廣告腳本 發布:2025-05-17 13:56:06 瀏覽:32
手文件夾恢復 發布:2025-05-17 13:53:32 瀏覽:995
linux怎麼看進程 發布:2025-05-17 13:53:30 瀏覽:305
thinkphp欄位緩存 發布:2025-05-17 13:52:01 瀏覽:577
山靈app安卓版如何設置 發布:2025-05-17 13:51:49 瀏覽:390
帆布壓縮袋 發布:2025-05-17 13:26:27 瀏覽:462
c語言16進製表示方法 發布:2025-05-17 13:11:25 瀏覽:484
ftp單位 發布:2025-05-17 13:10:03 瀏覽:146