一、    概念
        格式化字符串就是将一些变量转换为字符串并按一定格式输出字符串,包括指定字符的位置、对齐方式、空位补充方式等。Python提供了多种字符串格式设置方法。本节先介绍一种简单的方法。
        格式化字符串时,指定字符串格式化输出格式的字符串称为“格式字符串”。在使用字符串格式化方法时,在格式字符串内使用特定符号及其后面的格式及类型指定的串称为“格式符”或“转换说明符”,格式符的标记符号称为“占位符”,格式符对应的真实输出数据称为“真实值”。在使用百分号%的字符串格式化方法时,百分号就是占位符,占位符及其后面的格式及类型指定的串就是“格式符”。
       格式化字符串时,可以将格式字符串与真实值分开存放,输出时再拼接。

二、使用百分号的字符串格式化方法

该方式类似C语言中的经典函数printf,在函数左边输出格式部分用百分号%开头的格式符指定在哪个地方输出一个什么类型的变量,并可以指定输出的格式。同时在字符串右边引号的后面紧跟占位符百分号,后接真实值。真实值可以通过单个数值、元组或字典方式输入:

1.    如果只有一个真实值,则直接在百分号后面接变量或值,也可以将该真实值存放到单个元素的元组内作为元组输入;
2.    如果有多个真实值,可以通过将这些真实值放在一个元组内,原则内的每个元素就是一个真实值,占位符对应数据与元组内的元组逐一对应;
3.    如果输出数据存放在一个字典内,则在格式符中需要包含键名,并将字典作为真实值的容器输入。

格式符的语法:%[(name)][flags][width].[precision]typecode。

  1. (name)参数:当使用字典作为真实值的存放容器,name在此对应输出值关联的字典的键名,必须使用小括号将键名括起来,如果字典中不存在该键,则引发异常,否则输出该键对应的值;
  2. flags可以有+,-,' '或0。+表示应该包含数字的正负号。-表示左对齐,没有表示右对齐。' '为一个空格,表示在正数的左侧填充一个空格,从而与负数对齐。0表示使用0填充;
  3. width表示该输出值占用的宽度;
  4. precision表示小数点后精度;
  5. typecode表示输出值的类型,具体含义如下:
    • %s             字符串 (采用str()的显示)
    • %r             字符串 (采用repr()的显示)
    • %c             单个字符
    • %b             二进制整数
    • %d,%i          十进制整数
    • %o             八进制整数
    • %x,%X          十六进制整数
    • %e,%E          指数
    • %f,%F           浮点数
    • %g,%G          指数或浮点数 (根据显示长度)
    • %u             无符号数(没有细查文档,经测试可以输出负数)
    • %%             字符"%"

三、举例

需要输出一个学生的信息包括姓名、班级和总分数,用上面介绍的几种方式分别实现如下:

假设:学生信息存放在一个字典数据中,格式如下:

student={'name':'小明','class':20190301,'score':597.5}

1.    输出学生姓名,右对齐,直接使用真实值
       print('%4s同学'%student['name'])
2.    左对齐,名字占用4个长度,班级10个长度,分数7个长度的浮点数,真实值使用元组存储
       print('%10s班 %-4s同学,总分:%7.2f'%(student['class'],student['name'],student['score']))
3.    #右对齐其他格式与上例同,只是格式化字符串和真实值存放在变量中,输出时格式化处理
       format='%10s班 %-4s同学,总分:%7.2f'
       value=(student['class'],student['name'],student['score'])
       print(format%value)
4.    右对齐其他格式与上例同,只是格式化字符串和真实值存放在变量中,将格式化处理结果存放到变量再输出
       format='%10s班 %-4s同学,总分:%7.2f'
       value=(student['class'],student['name'],student['score'])
       output=format%value
       print(output)
5.    使用字典存放真实值,直接格式化输出
       print('%(class)10s班 %(name)-4s同学,总分:%(score)7.2f'%student)
6.    使用字典存放真实值,用变量方式存放格式化字符串
       format='%(class)10s班 %(name)-4s同学,总分:%(score)7.2f'
       output=format%student
       print(output)
7.    以上案例的执行截屏如下:

本节详细介绍了使用百分号占位符 字符串格式化的详细操作方法,并详细进行了举例说明,内容好理解,大家可以自行练习。后续章节将继续介绍字符串格式好的其他方法。

老猿Python(https://blog.csdn.net/LaoYuanPython)系列文章用于逐步介绍老猿学习Python后总结的学习经验,这些经验有助于没有接触过Python的程序员可以很容易地进入Python的世界。

欢迎大家批评指正,谢谢大家关注!

第3.8节 Python百分号占位符的字符串格式化方法相关推荐

  1. python3占位符 中文_WxString:有没有使用Python 3-占位符实现字符串格式化的C/C++代码?...

    我正在使用wxWidgets重写我们的应用程序.其中一个目标是取代我们对本地化字符串的旧方法.另一个可能的目标是将Python解释器嵌入到应用程序中,但只能在以后.无论如何,任何使用C++的代码或库都 ...

  2. Python几种基本的字符串格式化方法

    1.旧式 % 格式化 % 百分号格式化和 C 语言的 printf 格式化差不多. # '%%' 格式化成 '%' print('%% %d' % 1) #输出百分号和数字 # %c 字符及其ASCI ...

  3. 第21讲:Python字符串格式化的概念以及使用百分号作为占位符对字符串进行格式化

    文章目录 1.字符串格式化以及占位符的概念 2.使用百分号作为占位符对字符串进行格式化 2.1.使用百分号作为占位符的概念 2.2.将传入的时间字符串格式化成日期格式 2.3.格式化规则之只有一个占位 ...

  4. python a和b字符串和占位符输出_python格式化输出

    python格式化输出 一.格式化输出三种方式 在写程序的过程中难免要得,输出有有特色的格式来,没有特色,谁还会耐得下去看呢,恐怕自己都写小烦躁,不要不要得,毕竟人就是个神奇的小动物嘛,所以说不得不提 ...

  5. python中占位符包括_python中占位符

    python如何在一个字符串中使用两个占位符 1. 使用连接符: + 12 world = "World"print "Hello " + world + &q ...

  6. java double 占位符_Java输出格式化之占位符

    JAVA和C#在占位符方面有些区别,C#提供的占位符是用{num}这种形式,Java需要用%s这种形式,不太习惯,经查发现MessageFormat提供了花括号占位符的功能. [转自]https:// ...

  7. Python基础入门:3种字符串格式化方法教程

    有时候我们需要把一些变量填写到一个字符串中,如我们有3个变量 name="张三" gender="男" age="21" 假如我需要把它们放 ...

  8. python字符串格式化方法 format函数的使用

    python从2.6开始支持format,新的更加容易读懂的字符串格式化方法, 从原来的% 模式变成新的可读性更强的 花括号声明{}.用于渲染前的参数引用声明, 花括号里可以用数字代表引用参数的序号, ...

  9. Python 3.6.x字符串格式化方法小结

    1  使用%符号进行格式 使用%符号进行字符串格式化的形式如下图所示,格式运算符%之前的部分为格式字符串,之后的部分为需要进行格式化的内容. Python支持大量的格式字符,下表列出了比较常用的一部分 ...

最新文章

  1. iOS蓝牙开发---CoreBluetooth[BLE 4.0] 初级篇[内附Demo地址]
  2. 在jupyter notebook中同时安装python2和python3
  3. 计算机视觉大规模爆发,6大细分领域将撑起725亿元市场
  4. 与基础事务管理器通讯失败
  5. C++/STL Bitset (转)
  6. 分布式部署_Apache Spark探秘:三种分布式部署方式比较
  7. OpenCV3.4.3DNN 模块中sample-colorization、Easy-textdetector、openpose
  8. vue-cli构建的项目手动添加eslint配置
  9. 10.25模拟 列车调度
  10. nohup方式 真正的后台不挂断运行程序
  11. muddleftpd配置和用法
  12. python加减乘除_python加减乘除
  13. reactos操作系统实现 2
  14. 机械硬盘数据迁移到固态硬盘怎么操作?
  15. B站收藏备份工具设计和实现 Bilibili Memory 哔哩哔哩记忆
  16. 机器学习数据预处理----分类型文字数据的处理
  17. nlp-生成任务-摘要生成
  18. 特斯拉放弃私有化!马斯克想一出是一出
  19. 企业安全建设之API网关kong的搭建
  20. luogu 2717 寒假作业 (树状数组)

热门文章

  1. 前端开发打包工具——webpack(1)
  2. 诊所信息管理系统C语言课程设计
  3. java在文件尾部写文件_Java在文件尾部追加内容
  4. 在MATLAB的figure图中画局部放大的图中图
  5. 一文搞懂TCP/IP,入门计算机网络必看!
  6. setText()的一点小体会
  7. element ui背景图_vue+element-ui如何为元素设置背景图片
  8. python数据域宽左对齐_Python语言及其运用_第七章_像高手一样玩转数据
  9. java多图片上传功能的实现
  10. 常见的接口测试面试题