当前位置: 首页 > news >正文

字符串格式化 (%操作符)

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!

字符串格式化总结:

在许多编程语言中都包含有格式化字符串的功能,比如C和Fortran语言中的格式化输入输出。Python中内置有对字符串进行格式化的操作%。

 

模板

格式化字符串时,Python使用一个字符串作为模板。模板中有格式符,这些格式符为真实值预留位置,并说明真实数值应该呈现的格式。Python用一个tuple将多个值传递给模板,每个值对应一个格式符。

比如下面的例子:

print("I'm %s. I'm %d year old" % ('Vamei', 99))

上面的例子中,

"I'm %s. I'm %d year old" 为我们的模板。%s为第一个格式符,表示一个字符串。%d为第二个格式符,表示一个整数。('Vamei', 99)的两个元素'Vamei'和99为替换%s和%d的真实值。
在模板和tuple之间,有一个%号分隔,它代表了格式化操作。

整个"I'm %s. I'm %d year old" % ('Vamei', 99) 实际上构成一个字符串表达式。我们可以像一个正常的字符串那样,将它赋值给某个变量。比如:

a = "I'm %s. I'm %d year old" % ('Vamei', 99) print(a)

 

我们还可以用词典来传递真实值。如下:

print("I'm %(name)s. I'm %(age)d year old" % {'name':'Vamei', 'age':99})

可以看到,我们对两个格式符进行了命名。命名使用()括起来。每个命名对应词典的一个key。

 

格式符

格式符为真实值预留位置,并控制显示的格式。格式符可以包含有一个类型码,用以控制显示的类型,如下:

%s    字符串 (采用str()的显示)

%r    字符串 (采用repr()的显示)

%c    单个字符

%b    二进制整数

%d    十进制整数

%i    十进制整数

%o    八进制整数

%x    十六进制整数

%e    指数 (基底写为e)

%E    指数 (基底写为E)

%f    浮点数

%F    浮点数,与上相同

%g    指数(e)或浮点数 (根据显示长度)

%G    指数(E)或浮点数 (根据显示长度)

 

%%    字符"%"

 

可以用如下的方式,对格式进行进一步的控制:

%[(name)][flags][width].[precision]typecode

(name)为命名

flags可以有+,-,' '或0。+表示右对齐。-表示左对齐。' '为一个空格,表示在正数的左侧填充一个空格,从而与负数对齐。0表示使用0填充。

width表示显示宽度

precision表示小数点后精度

 

比如:

print("%+10x" % 10) print("%04d" % 5) print("%6.3f" % 2.3)

 

上面的width, precision为两个整数。我们可以利用*,来动态代入这两个量。比如:

print("%.*f" % (4, 1.2))

Python实际上用4来替换*。所以实际的模板为"%.4f"。

 

总结

Python中内置的%操作符可用于格式化字符串操作,控制字符串的呈现格式。Python中还有其他的格式化字符串的方式,但%操作符的使用是最方便的。

Python格式化字符串的替代符以及含义

    符   号    说     明
      %c 格式化字符及其ASCII码
      %s 格式化字符串
      %d 格式化整数
      %u 格式化无符号整型
      %o 格式化无符号八进制数
      %x 格式化无符号十六进制数
      %X 格式化无符号十六进制数(大写)
      %f 格式化浮点数字,可指定小数点后的精度
      %e 用科学计数法格式化浮点数
      %E 作用同%e,用科学计数法格式化浮点数
      %g 根据值的大小决定使用%f活%e
      %G 作用同%g,根据值的大小决定使用%f活%e
      %p 用十六进制数格式化变量的地址

 

Python的转义字符及其含义

    符    号    说     明
      \'  单引号
      \"  双引号
      \a  发出系统响铃声
      \b  退格符
      \n  换行符
      \t  横向制表符
      \v  纵向制表符
      \r  回车符
      \f  换页符
      \o  八进制数代表的字符
      \x  十六进制数代表的字符
      \000  终止符,\000后的字符串全部忽略

 

   如果在字符串中输出"\",需使用"\\"

 

 

 

原文出处:http://www.cnblogs.com/vamei/archive/2013/03/12/2954938.html

      http://blog.chinaunix.net/uid-20794157-id-3038417.html

转载于:https://www.cnblogs.com/bravexz/p/5070085.html

相关文章:

  • Memcached简介
  • dialog工具,让脚本迈向图形化
  • 如何学好编程(三)---四步成为编程精英
  • ios项目中引用其他项目复习
  • 检测一下你的专业指数:2015年十大测试工具你认识几个?
  • 1126 求递推序列的第N项(51nod)
  • Char、AnsiChar、WideChar、PChar、PAnsiChar、PWideChar 的用法
  • spring-data-jpa 多数据源
  • 利用partial关键字声明分部类和分部方法
  • linux下搭建LAMP
  • 整洁的测试遵循的规则
  • server配置学习 ---- 关闭防火墙
  • 第一章 C++编程基础
  • DataBind()方法实现数据绑定
  • Qt 和 Boost关于信号和槽的对比说明
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • Apache的80端口被占用以及访问时报错403
  • javascript数组去重/查找/插入/删除
  • Laravel5.4 Queues队列学习
  • leetcode-27. Remove Element
  • Tornado学习笔记(1)
  • 开源SQL-on-Hadoop系统一览
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 探索 JS 中的模块化
  • 想使用 MongoDB ,你应该了解这8个方面!
  •  一套莫尔斯电报听写、翻译系统
  • 赢得Docker挑战最佳实践
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • ​Linux·i2c驱动架构​
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • (27)4.8 习题课
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (动态规划)5. 最长回文子串 java解决
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (附源码)计算机毕业设计大学生兼职系统
  • (南京观海微电子)——I3C协议介绍
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (转)EOS中账户、钱包和密钥的关系
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞
  • .net 反编译_.net反编译的相关问题
  • .net访问oracle数据库性能问题
  • .NET教程 - 字符串 编码 正则表达式(String Encoding Regular Express)
  • .xml 下拉列表_RecyclerView嵌套recyclerview实现二级下拉列表,包含自定义IOS对话框...
  • /etc/X11/xorg.conf 文件被误改后进不了图形化界面
  • @test注解_Spring 自定义注解你了解过吗?
  • [acwing周赛复盘] 第 69 场周赛20220917
  • [AIGC] Nacos:一个简单 yet powerful 的配置中心和服务注册中心
  • [AIGC] Spring Interceptor 拦截器详解
  • [ajaxupload] - 上传文件同时附件参数值
  • [Android Studio 权威教程]断点调试和高级调试
  • [android] 切换界面的通用处理
  • [Angular] 笔记 20:NgContent