python格式化字符串的三種方式


公眾號‘小鵬長翅’同步發布

python格式化字符串的三種方式

格式化字符串其實就是字符串的拼接

普通的字符串拼接:

a = '好好學習'
b = '天天向上'
print('我們要'+a+b+'.')
>>>我們要好好學習天天向上.

下邊介紹3種python的格式化字符串的方法

方法一

使用格式化操作符%進行對字符串進行格式化

常用的操作符有:

符號 含義
%s 格式化字符串
%d 格式化整數
%f 格式化浮點數
基礎用法
a = '好好學習'
b = '天天向上'
print('我們要%s%s.'%(a,b))
>>>我們要好好學習天天向上.
-----------------------------------
print('我媳婦%d歲.'%(18))
>>>我媳婦18歲.
-----------------------------------
print('π的值為%f'%(3.1415926535898))
>>>π的值為3.141593#%f浮點型,默認保留6位小數
拓展
  • 補齊:%ns

    n是任意整數,不足n位,用空格補齊到n位,默認右對齊,超過n位則全部顯示

a = '好好學習'
print('我們要%6s.'%(a))
>>>我們要  好好學習.
  • 左對齊

    直接加個負號’即可

a = '好好學習'
print('我們要%-6s.'%(a))
>>>我們要好好學習  .
  • 數字左側補0
str1='我媳婦%06d歲.'%(18)
print(str1)
>>>我媳婦000018歲.
#6代表補齊6位,0代表用0補齊
  • 浮點型定保留2位小數,用0補齊10位
print('π的值為%010.2f'%(3.1415926535898))
>>>π的值為0000003.14
方法一需要注意的幾個點

1.%前面的占位符和后邊的實際值數量要一致,否則會報錯

str1='我們要%s%s.'%('好好學習')#%前邊有兩個占位符,但是值只有一個
print(str1))
>>>報錯

2.前邊用%d,后邊用字符串,報錯

前邊用%s,后邊用數字,不報錯

因為數字可以轉字符串,字符串不一定能轉數字

str1='我們要%d.'%('好好學習')#前邊%d,后邊字符串
print(str1)
>>>報錯
str2='我媳婦%s歲.'%(18)#%前邊%s,后邊數字
print(str2)
>>>我媳婦18歲.

方法二

使用{}.format進行字符串格式化

基礎用法
print('my name is {},身高:{},π的值為{}'
.format('吳彥祖',180,3.1415926535898))
>>>my name is 吳彥祖,身高:180,π的值為3.1415926535898
#每個{}按順序匹配format里的值,且自動識別類型
#不同於方法一,浮點型會完全輸出,不會默認保留6位
拓展
  • 前邊空位比后邊的值多--報錯
  • 前邊空位比后邊的值少--不報錯,默認按順序取值
print('my name is {},身高:{}.'.format('吳彥祖'))
>>>報錯#前邊空位比后邊的值多
print('my name is {},身高:{}.'
.format('吳彥祖',180,3.1415926535898))
#前邊空位比后邊的值少,默認按順序取值
>>>my name is 吳彥祖,身高:180.
  • {}沒有寫數字時,稱為順序取值法
  • {}內也可以輸入下標,稱為下標取值法
print('my name is {},身高:{}.'
.format('吳彥祖',180))
#順序取值法
>>>my name is 吳彥祖,身高:180.
print('my name is {1},身高:{0}.'
.format(180,'吳彥祖'))
#下標取值法
>>>my name is 吳彥祖,身高:180.

注意:順序取值法與下標取值法不能混用,否則報錯

  • 補齊{:n}
  • 補0{:0n}

n代表補齊的位數,字符串默認左對齊,數字默認右對齊

print('my name is {:5},身高:{:05}.'
.format('吳彥祖',180))
#{:5}補齊5個字符
>>>my name is 吳彥祖  ,身高:00180.
#字符串默認左對齊,數字默認右對齊
#數字前用0補齊
  • 左對齊<,居中對齊^,右對齊>
print('my name is {:>5},身高:{:^5}.'
.format('吳彥祖',180))
>>>my name is   吳彥祖,身高: 180 .

方法三

在python3.6以后的版本中,可以用f的寫法

f寫法可以認為是方法二的優化版

a = '吳彥祖'
b = 180
print(f'我叫{a},身高{b}.')#字符串前加f,{}內直接輸入值
>>>我叫吳彥祖,身高180.

方法二的拓展用法同樣適用方法三。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM