400-650-7353
您所在的位置:首頁 > IT干貨資料 > python > 【Python基礎知識】C語言printf式格式化字符串

【Python基礎知識】C語言printf式格式化字符串

  • 發(fā)布: python培訓
  • 來源:python干貨資料
  • 2020-08-19 16:12:34
  • 閱讀()
  • 分享
  • 手機端入口

Python從C語言中借鑒了一些語法特性,其中包括C語言中的printf式的格式化字符串。這種格式化字符串的方式很容易理解,下面是一個簡單的示例:

  1. >>> word = 'world' 
  2. >>> 'Hello,%s!' % word   # 第二個百分號前后的空格不是必須的 
  3. 'Hello,world!' 

其中,%s是格式說明符。它一方面告訴Python解釋器該在哪里取代word的值(即占位);另一方面告訴Python解釋器該字符串要格式化成什么樣的形式。

注意:%s,s代表string;%不是取模運算符,而是格式化字符串運算符。在前文中出現(xiàn)過類似情況,例如,數(shù)字間的“+”運算符用于數(shù)字加法運算,而在序列中“+”運算符用于序列拼接。這種同一種運算符的行為隨著數(shù)據(jù)類型的不同而發(fā)生行為的改變,稱為運算符重載(operator overloading)。

當多個字符串需要被格式化時,就需要將它們放到元組中:

  1. >>> word1 = 'Hello' 
  2. >>> word2 = 'world' 
  3. >>> '%s, %s!' % (word1, word2) 
  4. 'Hello, world!' 

除了%s外,格式說明符號還有很多種。常用的格式說明符及其含義如表所示。

使用%s格式化說明符應該提供一個字符串:

  1. >>> name = '小明' 
  2. >>> notice = '%s,很遺憾您這次沒有及格!'  
  3. >>> notice % name 
  4. '小明,很遺憾您這次沒有及格!' 

使用%d格式說明符應該提供一個數(shù)字:

  1. >>> name = '小明' 
  2. >>> score = 59 
  3. >>> notice1 = '%s,很遺憾,您的分數(shù)是%d,沒有及格!' 
  4. >>> notice1 % (name, score) 
  5. '小明,很遺憾,您的分數(shù)是59,沒有及格! 

使用%d格式說明符時,如果提供的是浮點數(shù),那么將舍棄小數(shù)部分,而轉(zhuǎn)換成整數(shù):

  1. >>> name = '小明' 
  2. >>> score = 59.9 
  3. >>> notice1 = '%s,很遺憾,您的分數(shù)是%d,沒有及格!' 
  4. >>> notice1 % (name, score) 
  5. '小明,很遺憾,您的分數(shù)是59,沒有及格!' 

使用%f格式說明符時,默認為6位小數(shù):

  1. >>> name = '小明' 
  2. >>> score = 59.9 
  3. >>> notice2 = '%s,很遺憾,您的分數(shù)是%f,沒有及格!' 
  4. >>> notice2 % (name, score) 
  5. '小明,很遺憾,您的分數(shù)是59.900000,沒有及格!' 

使用%f格式說明符時,可以指定小數(shù)位數(shù):

  1. >>> name = '小明' 
  2. >>> score = 59.9 
  3. >>> notice3 = '%s,很遺憾,您的分數(shù)是%.2f,沒有及格!' 
  4. >>> notice3 % (name, score) 
  5. '小明,很遺憾,您的分數(shù)是59.90,沒有及格!' 

使用%x格式說明符時,將十進制數(shù)轉(zhuǎn)換成十六進制數(shù):

  1. >>> name = '小明' 
  2. >>> score = 59 
  3. >>> notice4 = '%s,很遺憾,您的分數(shù)用十六進制表示為%x,沒有及格!' 
  4. >>> notice4 % (name, score) 
  5. '小明,很遺憾,您的分數(shù)用十六進制表示為3b,沒有及格!' 

對于這種“老式”的printf式的格式化字符串就討論到這里,它已經(jīng)逐漸“過時”。

文章“【Python基礎知識】C語言printf式格式化字符串”已幫助

>>本文地址:http://liujunjsxg.cn/zhuanye/2020/52597.html

THE END  

聲明:本站稿件版權均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。

1 您的年齡

2 您的學歷

3 您更想做哪個方向的工作?

獲取測試結(jié)果
  • 大前端大前端
  • 大數(shù)據(jù)大數(shù)據(jù)
  • 互聯(lián)網(wǎng)營銷互聯(lián)網(wǎng)營銷
  • JavaJava
  • Linux云計算Linux
  • Python+人工智能Python
  • 嵌入式物聯(lián)網(wǎng)嵌入式
  • 全域電商運營全域電商運營
  • 軟件測試軟件測試
  • 室內(nèi)設計室內(nèi)設計
  • 平面設計平面設計
  • 電商設計電商設計
  • 網(wǎng)頁設計網(wǎng)頁設計
  • 全鏈路UI/UE設計UI設計
  • VR/AR游戲開發(fā)VR/AR
  • 網(wǎng)絡安全網(wǎng)絡安全
  • 新媒體與短視頻運營新媒體
  • 直播帶貨直播帶貨
  • 智能機器人軟件開發(fā)智能機器人
 

快速通道fast track

近期開班時間TIME