400-650-7353

精品课程

您所在的位置:首页 > IT干货资料 > python > 【Python基础知识】C语言printf式格式化字符串

【Python基础知识】C语言printf式格式化字符串

  • 发布: 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;%不是取模运算符,而是格式化字符串运算符。在前文中出现过类似情况,例如,数字间的“+”运算符用于数字加法运算,而在序列中“+”运算符用于序列拼接。这种同一种运算符的行为随着数据类型的不同而发生行为的改变,称为运算符重载(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格式说明符应该提供一个数字:

  1. >>> name = '小明' 
  2. >>> score = 59 
  3. >>> notice1 = '%s,很遗憾,您的分数是%d,没有及格!' 
  4. >>> notice1 % (name, score) 
  5. '小明,很遗憾,您的分数是59,没有及格! 

使用%d格式说明符时,如果提供的是浮点数,那么将舍弃小数部分,而转换成整数:

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

使用%f格式说明符时,默认为6位小数:

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

使用%f格式说明符时,可以指定小数位数:

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

使用%x格式说明符时,将十进制数转换成十六进制数:

  1. >>> name = '小明' 
  2. >>> score = 59 
  3. >>> notice4 = '%s,很遗憾,您的分数用十六进制表示为%x,没有及格!' 
  4. >>> notice4 % (name, score) 
  5. '小明,很遗憾,您的分数用十六进制表示为3b,没有及格!' 

对于这种“老式”的printf式的格式化字符串就讨论到这里,它已经逐渐“过时”。

课程好礼申请领取
您的姓名
您的电话
意向课程
 

中公优就业

官方QQ

扫描上方二维码或点击一键加群,免费领取价值599元网课,加群暗号:599。 一键加群

>>本文地址:
注:本站稿件未经许可不得转载,转载请保留出处及源文件地址。

推荐阅读

优就业:ujiuye

关注中公优就业官方微信

  • 关注微信回复关键词“大礼包”,领80G学习资料
QQ交流群
领取免费网课
(加群备注“网站”)
IT培训交流群 加入群聊 +
软件测试 加入群聊 +
全链路UI/UE设计 加入群聊 +
Python+人工智能 加入群聊 +
互联网营销 加入群聊 +
Java开发 加入群聊 +
PHP开发 加入群聊 +
VR/AR游戏开发 加入群聊 +
大前端 加入群聊 +
大数据 加入群聊 +
Linux云计算 加入群聊 +
优就业官方微信
扫码回复关键词“大礼包”
领取80G学习资料

淘宝商家短视频
预约试听
2020OAO训练营
免费试听
课程资料、活动优惠 领取通道