當前位置:首頁 » 編程語言 » pythonstrformat

pythonstrformat

發布時間: 2022-09-27 16:17:31

1. python里的.format()是什麼意思

format函數這是一種字元串格式化的方法,用法如str.format()。

基本語法是通過 {} 和 : 來代替以前的 % 。

以下展示兩種主要用法:

(1)如:語句print("{:.2f}".format(3.1415926)),它的輸出為3.14,可以看出命令為保留兩位小數點。

(2)如:語句"{1} {0} {1}".format("hello", "world"),它的輸出為'world hello world',可以看出format為他們設置了位置。

又如:語句print '{} *'.format(j)表示輸出變數j的值以及乘號:j*,可以看出用在循環里可以輸出一個乘法的等式。

又如:語句print "{} 對應的位置是 {{0}}".format("runoob"),它的輸出為'runoob對應的位置是0'.

(1)pythonstrformat擴展閱讀:

如果在格式化數字時沒有指定format,Format會提供與Str函數類似的功能,盡管它是國際化的。然而,以Format作用在正數上不會保留正負號空間,而以Str的話則會。

如果要格式化一個沒有本地化的數值字元串,應該使用一個用戶自定義的數值格式,以保證得到需要的外觀。

注意如果Calendar屬性設置是Gregorian ,並且format指定了日期格式,那麼,提供的expression必須是Gregorian 。如果Visual BasicCalendar屬性設置是 Hijri,則提供的的expression必須是Hijri 。

2. 為什麼Python中的format有時候高亮有時候不高亮

format是python2.6新增的一個格式化字元串的方法,相對於老版的%格式方法,它有很多優點。
1.不需要理會數據類型的問題,在%方法中%s只能替代字元串類型
2.單個參數可以多次輸出,參數順序可以不相同
3.填充方式十分靈活,對齊方式十分強大
4.官方推薦用的方式,%方式將會在後面的版本被淘汰
format的一個例子
print 'hello {0}'.format('world')

會輸出hello world
format的格式
replacement_field ::= 「{」 [field_name] [「!」 conversion] [「:」 format_spec] 「}」
field_name ::= arg_name (「.」 attribute_name | 「[」 element_index 「]」)*
arg_name ::= [identifier | integer]
attribute_name ::= identifier
element_index ::= integer | index_string
index_string ::= <any source character except 「]」> +
conversion ::= 「r」 | 「s」 | 「a」
format_spec ::= <described in the next section>
format_spec 的格式
format_spec ::= [[fill]align][sign][#][0][width][,][.precision][type]
fill ::= <any character>
align ::= 」<」 | 「>」 | 「=」 | 「^」
sign ::= 」+」 | 「-」 | 」 「
width ::= integer
precision ::= integer
type ::= 」b」 | 「c」 | 「d」 | 「e」 | 「E」 | 「f」 | 「F」 | 「g」 | 「G」 | 「n」 | 「o」 | 「s」 | 「x」 | 「X」 | 「%」
應用:
一 填充
1.通過位置來填充字元串
print'hello {0} i am {1}'.format('Kevin','Tom') #
hello Kevin i am Tom
print'hello {} i am {}'.format('Kevin','Tom') #
hello Kevin i am Tom
print'hello {0} i am {1} . my
name is {0}'.format('Kevin','Tom')# hello Kevin i am Tom .
my name is Kevin

foramt會把參數按位置順序來填充到字元串中,第一個參數是0,然後1 ……
也可以不輸入數字,這樣也會按順序來填充
同一個參數可以填充多次,這個是format比%先進的地方
2.通過key來填充
print 'hello {name1} i am {name2}'.format(name1='Kevin',name2='Tom') # hello Kevin i am Tom

3.通過下標填充
names=['Kevin','Tom']
print'hello {names[0]} i am
{names[1]}'.format(names=names) #
hello Kevin i am Tom
print'hello {0[0]} i am {0[1]}'.format(names) #
hello Kevin i am Tom

4.通過字典的key
names={'name':'Kevin','name2':'Tom'}
print 'hello {names[name]} i am {names[name2]}'.format(names=names) # hello Kevin i am Tom

注意訪問字典的key,不用引號的
5.通過對象的屬性
classNames():
name1='Kevin'
name2='Tom'

print'hello {names.name1} i
am {names.name2}'.format(names=Names) #
hello Kevin i am Tom

6.使用魔法參數
args=['lu']
kwargs = {'name1': 'Kevin', 'name2': 'Tom'}
print 'hello {name1} {} i am {name2}'.format(*args, **kwargs) # hello Kevin i am Tom

二 格式轉換
b、d、o、x分別是二進制、十進制、八進制、十六進制。

數字 格式 輸出 描述
3.1415926 {:.2f} 3.14 保留小數點後兩位
3.1415926 {:+.2f} 3.14 帶符號保留小數點後兩位
-1 {:+.2f} -1 帶符號保留小數點後兩位
2.71828 {:.0f} 3 不帶小數
1000000 {:,} 1,000,000 以逗號分隔的數字格式
0.25 {:.2%} 25.00% 百分比格式
1000000000 {:.2e} 1.00E+09 指數記法
25 {0:b} 11001 轉換成二進制
25 {0:d} 25 轉換成十進制
25 {0:o} 31 轉換成八進制
25 {0:x} 19 轉換成十六進制
三 對齊與填充
數字 格式 輸出 描述
5 {:0>2} 05 數字補零 (填充左邊, 寬度為2)
5 {:x<4} 5xxx 數字補x (填充右邊, 寬度為4)
10 {:x^4} x10x 數字補x (填充右邊, 寬度為4)
13 {:10} 13 右對齊 (默認, 寬度為10)
13 {:<10} 13 左對齊 (寬度為10)
13 {:^10} 13 中間對齊 (寬度為10)
四 其他
1.轉義{和}符號
print'{{ hello {0} }}'.format('Kevin')

跟%中%%轉義%一樣,formate中用兩個大括弧來轉義
2.format作為函數
f = 'hello {0} i am {1}'.format
print f('Kevin','Tom')

3.格式化datetime
now=datetime.now()
print'{:%Y-%m-%d %X}'.format(now)

4.{}內嵌{}
print 'hello {0:>{1}} '.format('Kevin',50)

5.嘆號的用法
!後面可以加s r a 分別對應str() repr() ascii()
作用是在填充前先用對應的函數來處理參數

print"{!s}".format('2') #
2
print"{!r}".format('2') # '2'

差別就是repr帶有引號,str()是面向用戶的,目的是可讀性,repr()是面向python解析器的,返回值表示在python內部的含義
ascii()一直報錯,可能這個是3.0才有的函數

3. python語言format用法

Format為CString類的一個成員函數,它通過格式操作使任意類型的數據轉換成一個字元串Format裡面可以寫普通的字元串,比如「mynameis」,但有些格式指令字元具有特殊意義,比如「%6s」。

Format(<表達式>[,<格式字元串>])其中,<表達式>:要格式化的數值、日期或字元串表達式。<格式字元串>:指定表達式的值的輸出格式。格式字元有三類:數值格式、日期格式和字元串格式。格式字元要加引號。

方法如下:

1、首先按下「Win+R」組合鍵,打開運行窗口。

4. python 2.7里邊的str.format是啥啊,怎麼用啊,能不能具體講一下

format就是格式化輸出字元串,簡單的說就是format裡面的東西去替換前面的內容,在替換的時候,可以按某種規定來輸出。
例如:按編號替換
'{0} {1} {2}'.format('a', 'b', 'c')
輸出 'a b c'
'{1} {1} {1}'.format('a', 'b', 'c')
'b b b'
替換數值,輸出浮點數:
'{: f}; {: f}'.format(3.14, -3.14)
' 3.140000; -3.140000'
按10進制,16進制,8進制,2進制輸出42這個數
"int: {0:d}; hex: {0:#x}; oct: {0:#o}; bin: {0:#b}".format(42)
'int: 42; hex: 0x2a; oct: 0o52; bin: 0b101010'

5. 利用Python編寫程序,輸入一個三位數,分離出各位數上的數字並輸出

前面跟大家分享過佔位符%,最近發現了個更好用的格式化輸出函數format,故做了個總結,下面將是對format函數的用法全解。

首先,format是一個字元串中的函數 表達式為 str.format(),採用了 {} 來代替佔位符 %

format(value, format_spec='', /)

這個為調用格式 value 表示格式化輸入的值(參數),可以接受不限個參數

format函數的位置參數用法 「{0}」.format(value)

"The dog is {} years old,name {}".format(1,"DaiMo")#大括弧里沒有設置位置參數

結果為:'The dog is 1 years old,name DaiMo'

這是默認位置參數狀態下的輸出結果,第一個{}對應format函數的第一個參數,

第二個{}對應著第二個參數,以此類推,一一對應。

"The dog is {0} years old,name {1}".format(1,"DaiMo")

結果為:'The dog is 1 years old,name DaiMo'

"The dog is {1} years old,name {0}".format(1,"DaiMo")

結果為:'The dog is DaiMo years old,name 1'

通過位置的改變來讓替換的值根據位置改變

format函數的字元填充用法 「{:}」.format()

說到這一點,可能稍微有點復雜,為了方便理解,在引入format函數的調用格式

'''

{ index : [ [fill] align] [sign] [+] [width] [.precision] [type] ] }

index 為位置參數,從0,1,……,開始

fill:指定空白處填充的字元,當填充字元為逗號(,)且作用於整數或浮點數時,

該整數(或浮點數)會以逗號分隔的形式輸出(千分位輸出),例如(1000000會輸出 1,000,000)

align:指定數據的對齊方式(、^ 分別為左對齊、右對齊、居中,= 看下圖)

sign:指定有無符號數(+、-、、空格)

width:指定輸出數據時所佔的寬度。

precision:指定保留的小數位數。

type:指定輸出數據的具體類型

'''

哈?還看不懂嗎?那我以例子為基礎講細一點

print("The dog is {0:0>2} years old,name {1}".format(1,"DaiMo"))

The dog is 01 years old,name DaiMo

大括弧中第一個0表示位置參數,第二個0是在設定的字元長度下,空白處以0來填充。> 表示右對齊,2 表示字元長度為2.

6. python問題,用format函數來格式化字元串,如何設置寬度為變數

在{}里繼續嵌套一次{},並在format的參數里增加一項即可。

b=10
print("{0:*^{width}}".format("字元串", width=b))

b=30
print("{0:*^{width}}".format("字元串", width=b))

最後得到的輸出如下
***字元串****
*************字元串**************

7. 為什麼Python中format括弧里要加引號

一種格式化字元串的函數。
大括弧裡面是可以帶數字的,他表示的是取format( )括弧中的第幾個元素,索引從0開始,所以需要加引號。
Python2.6 開始,新增了一種格式化字元串的函數 str.format(),它增強了字元串格式化的功能。基本語法是通過 {} 和 : 來代替以前的 % 。format 函數可以接受不限個參數,位置可以不按順序。

8. Python中,str.format(**locats()) 什麼意思

你這里str.format(**locats())中locats應該是locals吧?
locals返回當前作用域 的所有局部變數的變數名:變數值組成的字典。
例如:當前作用域有兩個局部變數x=1,y='something'則locals()返回字典
{'x':1,'y':'something'}
**locals()在format函數調用里的意思是將locals()返回的字典解包傳遞給format函數。如果locals返回的如上面的例子里說的 一樣的話,解包就是將{'x':1,'y':'something'}變成x=1,y='something'
於是str.format(**locats())等價於str.format(x=1,y='something')
format是字元串對象的方法,format的使用可參考python手冊。
還有什麼不懂可以再追問。謝謝。

9. format在python中的用法

fotmat作為Python的的格式字元串函數,主要通過字元串中的花括弧{},來識別替換欄位,從而完成字元串的格式化。format是python2.6新增的一個格式化字元串的方法,相對於老版的%格式方法,它有很多優點。單個參數可以多次輸出,參數順序可以不相同。

python中的format函數用法

基本語法是通過{}和:來代替以前的%

1、例如輸出保留兩位的數字:print("{:.2f}".format(3.1456879)),且會四捨五入。

2、大括弧里可以填索引,以此來保證後續format中參數的順序位置,例如:

print("{2}{0}{1}".format("are","you","How"))

輸出為Howareyou,注意索引應從0開始。

而且需要注意的是如果未填索引,那麼會默認按format中參數順序位置填充,此時大括弧佔位數要與format參數相等。如果填充索引,索引數需要不大於format索引數。

3、如果是雙層大括弧結構,則認為第二層大括弧為普通字元串,不會進行格式化。例如:

print("{}對應的位置是{{普通字元串}}".format("字元串"))

輸出為:字元串對應的位置是{普通字元串},注意加粗部分,第二層大括弧會作為普通的字元串,不會進行格式化。

熱點內容
vb遞歸演算法 發布:2024-12-26 23:20:52 瀏覽:768
c語言讀取文件的函數 發布:2024-12-26 23:20:40 瀏覽:302
存儲介質安全 發布:2024-12-26 23:17:42 瀏覽:746
centosphp版本 發布:2024-12-26 23:11:59 瀏覽:71
安卓機怎麼關閉主題 發布:2024-12-26 21:55:57 瀏覽:915
javafor線程 發布:2024-12-26 21:54:35 瀏覽:744
python自定義模塊 發布:2024-12-26 21:41:37 瀏覽:57
linux安裝mysqltar 發布:2024-12-26 21:18:02 瀏覽:315
瀏覽器的java支持 發布:2024-12-26 21:15:45 瀏覽:655
電商高管如何配置 發布:2024-12-26 21:13:48 瀏覽:709