python格式化
① python 字元串格式化問題
%.3f
中,
%
引導後面的符號,表示用來格式化字元串後面
%
之後的變數變成字元串。
.3
表示小數點後面保留三位。f
表示將後面要格式化的變數作為浮點數來格式化。
format
%
pi
中的
%
表示按照
format
裡面的
%.3f
的要求,將
pi
轉化為字元串替換掉
format
中的
%.3f。
② python如何格式化∪盤
方式一:直接+拼接
print(src + username + " 年齡是:" + str(age))
回到頂部
方式二: f字元串表達式
# a、需要在字元串前面添加f
# b、可以在字元串中間使用{},花括弧的中間可以寫任何錶達式(或變數)
# c、python3.6+的版本可用
info = f"我的名字是:{username} \t 年齡是:{age}"info1 = f"我的名字是:{username[:-1]} \t 年齡是:{age + 1}"print(info)print(info1)
回到頂部
方式三:使用format進行格式化
# a、{} 為佔位符,format方法中的參數進行一一對應
# b、往往花括弧的數量與format方法中的參數個數一致
# c、{}花括弧中可以填寫format方法參數的索引值
info2 = "我的名字是:{} \t 年齡是:{}".format(username, age)
info3 = "我的名字是:{2} \t 年齡是:{1} \t 我的分數為{0}".format(username, age, 99)print(info2)print(info3)
回到頂部
方式四:python2 中推薦方法
info4 = "我的名字是:%s 年齡是:%s 我的分數為:%s" % (username, age, 88)print("info4:", info4)
③ python怎麼用格式化字元修改所有變數的名字
自python2.6開始,新增了一種格式化字元串的函數str.format(),可謂威力十足。那麼,他跟之前的%型格式化字元串相比,有什麼優越的存在呢?讓我們來揭開它羞答答的面紗。
語法
它通過{}和:來代替%。
「映射」示例
通過位置
In [1]: '{0},{1}'.format('kzc',18)
Out[1]: 'kzc,18'
In [2]: '{},{}'.format('kzc',18)
Out[2]: 'kzc,18'
In [3]: '{1},{0},{1}'.format('kzc',18)
Out[3]: '18,kzc,18'
字元串的format函數可以接受不限個參數,位置可以不按順序,可以不用或者用多次,不過2.6不能為空{},2.7才可以。
通過關鍵字參數
In [5]: '{name},{age}'.format(age=18,name='kzc')
Out[5]: 'kzc,18'
通過對象屬性
class Person:
def __init__(self,name,age):
self.name,self.age = name,age
def __str__(self):
return 'This guy is {self.name},is {self.age} old'.format(self=self)
In [2]: str(Person('kzc',18))
Out[2]: 'This guy is kzc,is 18 old'
通過下標
In [7]: p=['kzc',18]
In [8]: '{0[0]},{0[1]}'.format(p)
Out[8]: 'kzc,18'
有了這些便捷的「映射」方式,我們就有了偷懶利器。基本的python知識告訴我們,list和tuple可以通過「打散」成普通參數給函數,而dict可以打散成關鍵字參數給函數(通過和*)。所以可以輕松的傳個list/tuple/dict給format函數。非常靈活。
格式限定符
它有著豐富的的「格式限定符」(語法是{}中帶:號),比如:
填充與對齊
填充常跟對齊一起使用
^、<、>分別是居中、左對齊、右對齊,後面帶寬度
:號後面帶填充的字元,只能是一個字元,不指定的話默認是用空格填充
比如
In [15]: '{:>8}'.format('189')
Out[15]: ' 189'
In [16]: '{:0>8}'.format('189')
Out[16]: '00000189'
In [17]: '{:a>8}'.format('189')
Out[17]: 'aaaaa189'
精度與類型f
精度常跟類型f一起使用
In [44]: '{:.2f}'.format(321.33345)
Out[44]: '321.33'
其中.2表示長度為2的精度,f表示float類型。
其他類型
主要就是進制了,b、d、o、x分別是二進制、十進制、八進制、十六進制。
In [54]: '{:b}'.format(17)
Out[54]: '10001'
In [55]: '{:d}'.format(17)
Out[55]: '17'
In [56]: '{:o}'.format(17)
Out[56]: '21'
In [57]: '{:x}'.format(17)
Out[57]: '11'
用,號還能用來做金額的千位分隔符。
In [47]: '{:,}'.format(1234567890)
Out[47]: '1,234,567,890'
④ python 處理文本,格式化文本~
#coding=utf-8
records=[]
record={}
withopen("data.txt")asf:
whileTrue:
line=f.readline()
ifnotline:
iflen(record)!=0:records.append(record)
break
field=line[line.find(":")+1:].strip()
ifline.startswith("ScopeId"):
iflen(record)!=0:records.append(record)
record={}
record["ScopeId"]=field
elifline.startswith("Name"):
record["Name"]=field
elifline.startswith("Free"):
record["Free"]=field
elifline.startswith("InUse"):
record["InUse"]=field
elifline.startswith("PercentageInUse"):
record["PercentageInUse"]=field
#設置預設項
forrinrecords:
r.setdefault("InUse",0)
r.setdefault("PercentageInUse",0)
r.setdefault("Name","")
r.setdefault("Free",0)
printrecords
⑤ python字元串格式化輸出的時候類似{0:.3f}是什麼意思
%f 保留小數點後面六位有效數字,%.3f 保留三位小數。
%e 保留小數點後面六位有效數字,指數形式輸出。
%3e 保留3位小數位,使用科學計數法。
%g 保留六位有效數字的前提下,使用小數方式,否則用科學計數法。
%3g保留3位有效數字,使用小數或科學計數法。
%s 標准輸出。
%10s 右對齊,佔位符10位。
%10s 左對齊,佔位符10位。
%.2s 截取2位字元串。
%10.2s 10位佔位符,截取兩位字元串。
(5)python格式化擴展閱讀
sprintf 最常見的應用之一莫過於把整數列印到字元串中,所以,spritnf 在大多數場合可以替代itoa。
如:
//把整數123 列印成一個字元串保存在s 中。
sprintf(s, "%d", 123); //產生"123"可以指定寬度,不足的左邊補空格:
sprintf(s, "%8d%8d", 123, 4567); //產生:" 123 4567"當然也可以左對齊:
sprintf(s, "%-8d%8d", 123, 4567); //產生:"123 4567"。
也可以按照16 進制列印:
sprintf(s, "%8x", 4567); //小寫16 進制,寬度佔8 個位置,右對齊。
sprintf(s, "%-8X", 4568); //大寫16 進制,寬度佔8 個位置,左對齊。
⑥ python格式化字元
第一個print有兩個錯誤 %d是整數類型, %前面沒逗號
print("let 's talk about %s"%(my_name))
第二個和第三錯誤是format前面是點, 不是逗號
print("he 's {} inches tall.".format(my_height))
⑦ python 的格式化輸入
沒有這樣的格式,要麼讓用戶分次輸入,要麼一次輸入後,解析字元串賦給3個參數(":"分隔)
⑧ python 格式化日期
python格式化日期的方法:可以利用time.asctime(time.local(time.time()))函數來格式化日期。如果我們要獲取當前日期,可以利用時間函數time()來獲取。
⑨ Python字元串格式化問題
*,表示輸出的字元的寬度,你給的例子,就是4個字元的寬度
又比如
>>> '%.*s%.*s'%(2, "abce", 3, "324223")
'ab324'
>>> '%.*s%*.s'%(2, "abce", 3, "324223")
'ab '
第一個:2個寬度所以只有ab,後面的只有3個寬度,就是324
需要注意. 和 *的先後順序
第二個:2寬度,也是ab,後面由於.和*的順序變了,沒有輸出字元,但給了3個寬度
======================================================================
這么給你說嘛: '%*.*s'%(10,2, "abce")
第一個*表示輸出的『內容』長度為10
第二個*表示『abce』這個串,只取前兩位,你可以理解為精度
s表示是字元串
結果為:8個空格 + ab
==========再來看你的問題=====================================
'%*.s' % (4,'hi')
我的疑問是為什麼'hi'沒有輸出?如何理解?
[ans:沒輸出因為.後面沒有給int值,所以沒輸出hi]
另外,點(.)後如果沒有加精度值,機器將如何執行?
[ans:結果你已經看到了,沒給值就不輸出]
還有如果輸出的是字元串,但是點(.)的前後都有星號(*),那麼此時輸出的字元串寬度到底是多少?
[ans:*.*,都給了值,第一個是輸出字元串的寬度,第二個是取你給的字元串的寬度,上面給你舉得例子, '%*.*s'%(10,2, "abce"),輸出寬度為10,取 abce的前兩個字元]
是以前面一個星號為准還是後面的那個?
[ans:同上]
⑩ python中如何格式化代碼
你的問題是什麼?我沒有理解。如果只是代碼縮進的話。那隻要不是notepad隨便一個ide或編輯器都做的到。先把問題描述清楚。