python基礎知識——3種字符串格式化的方式

字符串的格式化一:%

語法解釋:

info=‘我的名字是%s,我的年齡是%s’%(name,age)
% 是佔位符
s 有默認轉換的能力,用str()函數進行字符串轉換
d 轉成有符號的十進制數
f 轉成浮點數(小數部分自然截斷)
x 轉成無符號的十六進制數(x/X代表轉換後的十六進制字符的大小寫)
簡單示例:
name='tom'
age=20
info='我的名字是%s,我的年齡是%s'%(name,age)#元素超過2個 變量要用元組格式
print(info)
#打印:我的名字是tom,我的年齡是20
def my_str(name,age):
 print('我的名字是%s,我的年齡是%s'%(name,age))
my_str('sunqq',19)
#打印:我的名字是sunqq,我的年齡是19

1.1常見用法——%d指定寬度

注意1:默認用空格補齊,寬度前寫0就用0補齊,用其他格式的字符代替補齊值會報錯,最好實用默認或0)

注意2:在%s中使用%a.b時,取b不足用0補齊,再看位數a,不足空格補齊

print('%d'%56)
#打印:56
print('%10d'%56) #最小---正數--右對齊,左補齊
#打印: 56
#10是寬度10個字符,56是2個,不足補齊8個,默認從左補齊
print('%-10d'%56)#最小---正數--右=左對齊,右補齊
#打印:56 。
print('%1d'%56) #打印的長度小於數據時,按照數據長度打印
#打印:56
print('%010d'%400) #十位,不足的以0補齊
#打印:0000000400
print('%010d'%5000)
#打印:0000005000
print('%10d'%12) #d格式,接入的是str類型,會報錯
*# print('%10d'%'sun')* 
#TypeError: %d format: a number is required, not str
print('%10.4d'%56)
#打印: 0056 #取4位數,不足用0補齊,再看位數,不足空格補齊

1.2常見用法——%s指定寬度

注意:在%s中使用%a.b時,先截取b字符串,再看a的位數補足b字符串

str='jasper'
print('我的名字是%s~~'%str)
#打印:我的名字是jasper~~ #常規打印
print('我的名字是%2s~~~~'% str)
#打印:我的名字是jasper~~ 
#當打印的字符串長度<原字符串時,按照原字符串打印;當打印的字符串長度>原字符串時,空格補齊
print('我的名字是%10s~~'%str)
#我的名字是 jasper~~
print('我的名字是%.2s~~'%str)
#我的名字是ja~~ #打印的字符串是截取原字符串的前2位
print('我的名字是%10.2s~~'%str)
#我的名字是 ja~~ #打印的字符串是截取原字符串的前2位,且要求顯示10位,然後用空格補足8位

1.3常見用法——%f指定寬度

注意:在%f中使用%a.b時,小數點後是小數點取幾位小數,小數點前指取的小數的全部個數;

注意:格式化輸出默認是6位小數–且四捨五入

print('%f'%3.1415926)
#打印:3.141593
print('%.2f'%3.1495926)
#打印:3.15 #保留小數點後2位且四捨五入
print('%.9f'%3.1415926)
#打印:3.141592600 #不足的補0
print('%15.10f'%3.1415926) #先取出10位小數,取出的小數位數>原小數位數,取原小數且用0補足10位;取出的小數位數<原小數位數,取10位

1.4常見用法——%x/X指定寬度

注意:#符號是十六進制的前綴0x/0X

print('%x'%108)
#打印:'6c'
print('%X'%108)
#打印:'6C'
print('%#x'%108)
#打印:'6c'
print('%#X'%108)
#打印:'6c'

延伸補充(個人看法:1.1-1.3是重點掌握,其餘瞭解即可)

符號描述

%c格式化字符及其ASCII碼*

%s格式化字符串

%d格式化整數

%u格式化無符號整型

%o格式化無符號八進制數

%x格式化無符號十六進制數

%X格式化無符號十六進制數(大寫)

%f格式化浮點數字,可指定小數點後的精度

%e用科學計數法格式化浮點數

%E作用同%e,用科學計數法格式化浮點數

%g%f和%e的簡寫

%G%f 和 %E 的簡寫

%p用十六進制數格式化變量的地址

python基礎知識——3種字符串格式化的方式

字符串的格式化二:str.format()函數

解釋:

使用{}來代替傳統的%方式

‘{},{}’,字符串中的{}和%意思一樣,都是佔位符,不是字典

2.1——順序填值

name='tom'
age=20
info='我叫:{}~~,我的年齡是:{},哈哈'.format(name,age)
print(info)
#指定寬度--{:寬度}:花括號中的:冒號是固定語法,寬度直接輸入想要的數值
info='我叫:{:6}~~,我的年齡是:{:6},哈哈'.format(name,age)
print(info)
#打印:我叫:tom ~~,我的年齡是: 20~~
#注:1:.format()函數默認指定寬度,對於字符串類型是左對齊,然後補齊空缺,數值類型是右對齊,然後補齊空缺
#注意2:.format()函數自定義對齊,:後使用>大於號,是右對齊; < 小於號是左對齊,^中間號是中間對齊
info='右對齊——我叫:{:>6}~~,我的年齡是:{:>6},哈哈'.format(name,age)
print(info)
#打印:右對齊——我叫: tom~~,我的年齡是: 20,哈哈
info='左對齊——我叫:{:<6}~~,我的年齡是:{:<6},哈哈'.format(name,age)
print(info)
#打印:左對齊——我叫:tom ~~,我的年齡是:20 ,哈哈
info='中間對齊—我叫:{:^6}~~,我的年齡是:{:^6},哈哈'.format(name,age)
print(info)
#打印:中間對齊—我叫: tom ~~,我的年齡是: 20 ,哈哈
#注意2:.format()函數自動補齊的內容是隨意的,默認補空格,想補什麼類型就想在對齊方向前面即可
info='我叫:{:4>6}~~,我的年齡是:{:*>6},哈哈'.format(name,age)
print(info)
#打印:我叫:444tom~~ ,我的年齡是:****20,哈哈

2.2—— 下標填值法

{1:6},:冒號前面是下標填值法的區域,會把.format(name,age),內容看成一個元組,

name是下標爲0的元素,age是下標爲1的元素,冒號前寫0就是name,寫1就是age的值

info='1下標填值法---我叫:{0:4>6}~~,我的年齡是:{0:*>6},哈哈'.format(name,age)
print(info)
#1下標填值法---我叫:444tom~~,我的年齡是:***tom,哈哈
info='2下標填值法---我叫:{1:4>6}~~,我的年齡是:{1:*>6},哈哈'.format(name,age)
print(info)
#2下標填值法---我叫:444420~~,我的年齡是:****20,哈哈
info='3下標填值法---我叫:{1}~~,我的年齡是:{1},哈哈'.format(name,age)
print(info)
#{}中只寫1個數值或寫1:(1加冒號),默認是下標填值法
#打印:3下標填值法---我叫:20~~,我的年齡是:20,哈哈

2.3—— 變量填值法

1 print('我叫:{name}~~,我的年齡是:{age},哈哈'.format(name='sun',age=19))
2 print('我叫:{name}~~,我的年齡是:{age},哈哈'.format(age=19,name='sun'))

補充:如果字符串中本來就帶有{},怎麼輸出

#叫{cute的}中的花括號會認爲是佔位符,不用轉譯,直接在{}加一層{}即可
print('我叫{{cute的}}:{1:4>6}~~,我的年齡是:{{{1:*>6}}},哈哈'.format(name,age))
#打印:我叫{cute的}:444420~~,我的年齡是:{****20},哈哈

python基礎知識——3種字符串格式化的方式

字符串的格式化三——字符前加f

解釋:

f是forma的縮寫,f的用法是python3.6中特有的,最方便的一種

print(f'我叫{{cute的}}:{name}~~,我的年齡是:{age},哈哈')
#打印:我叫{cute的}:tom~~,我的年齡是:20,哈哈

以上是就是文章的全部內容,覺得文章還不錯的話不妨收藏起來慢慢看,有任何建議或看法歡迎大家在評論區分享討論!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章