python之字符串拼接:%和format


使用百分號拼接字符串:

例如:

msg='i am %s my hobby is...' %'abc'
print(msg)

如果需要用2個%s呢?就使用括號
例如:

msg='I am %s my hobby is %s' %('abc','DDD')   print(msg) 返回結果: i am abc my hobby is DDD

%s是萬能的,可以接收數字、字符串、列表
缺點是可讀性差

msg='I am %s my hobby is %s' %('abc',123) print(msg) msg='I am %s my hobby is %s' %('abc',[2,3,4]) print(msg)

%.<數字>s對字符串的截取寬度設置
例如:

msg='I am %.4s' %'abcdefg'
print(msg) 返回結果: I am abcd

%d只接收數字
如果給字符串、列表等會報錯

msg='I am %s my age is %d' %('abc',19) print(msg)

%f接收浮點數

msg='Percent %f' %99.97654321234566
print(msg) 返回結果: Percent 99.976543

%f保留小數點后2位

msg='Percent %.2f' %99.97654321888
print(msg) 返回結果: Percent 99.98

%%顯示百分比符號,使用2個%符號

例如:

msg="Percent %.2f%%" %99.97654321111
print(msg)

使用變量的格式化顯示字符串
例如:

msg="I am %(name)s age %(age)d" %{"name":"alex","age":19} print(msg) 返回結果: I am alex age 19

%s的左右對齊,保留寬度
例如:
  %-<數字>s 表示左對齊
  %+<數字>s 表示右對齊

msg='I am %(name)-20s hobby is ...' %{"name":"abc"} print(msg) 返回結果: I am abc hobby is ... msg='I am %(name)+20s hobby is ...' %{"name":"abc"} print(msg) 返回結果: I am abc hobby is ...

********format格式化字符串********

#元組的形式為字符串一一提供

tpl="i am {}, age {},{}".format("seven",18,'alex') print(tpl)

#字典的形式為字符串提供

tpl="I am {name},age {age}, really {name}".format(name="seven",age=18) print(tpl)   #個人最喜歡這種方式,簡單、直接、清晰明了

#另一種寫法:以字典的方式書寫,但注意一定要使用**

tpl="i am {name}, age {age}, really {name}".format(**{"name":"seven","age":18}) print(tpl)  #**{"name":"seven","age":18}作用就是把鍵值對取出來轉換成name="seven"的方式
tpl="i am {0[0]}, age{0[1]}, really {0[2]}".format([1,2,3],[11,22,33]) print(tpl)

說明:format除提供了字典的key-value形式之外,其余都以元組的形式提供,
  所以展開后得到元組:([1,2,3],[11,22,33])
  所以{0[0]}到元組([1,2,3],[11,22,33])取值就是[1,2,3]中的1;
  所以{0[1]}到元組([1,2,3],[11,22,33])取值就是[1,2,3]中的2;
  所以{0[2]}到元組([1,2,3],[11,22,33])取值就是[1,2,3]中的3

tpl="i am {:s}, age {:d}, money {:f}".format("seven",18,9999.1)
說明:
  {:s}代表字符串
  {:d}代表數字
  {:f}代表浮點數

 

#如果要傳入列表,則要使用1個*
例如:

tpl="i am {:s}, age {:d}".format(*["serven",18])    
li=["seven",19] tpl="i am {:s}, age {:d}".format(li)

說明:如果這樣寫,本身format會把li加入到元組或列表中,但是li本身就是個列表
這樣就造成列表/元組中的列表,會產生奇怪的問題,所以此時要使用星號:

tpl="i am {:s}, age {:d}".format(*li)
使用*把列表中的值取出來,再放到format構造的列表或元組中

tpl="number: {:b},{:o},{:d},{:x},{:X},{:%}".format(15,15,15,15,15,15.87623,2) print(tpl) 返回結果: number: 1111,17,15,f,F,1587.623000% :b 表示二進制 :o 表示八進制 :d 整形數字 :x 小寫十六進制 :X 大寫十六進制 :% 表示百分號

 


免責聲明!

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



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