【Python基础】之字符串格式化(%百分号形式和format形式)

2023-11-11

     字符串的格式化主要有两种,第一种是%形式的,第二种是python特有的,format形式。

#百分号形式
s = "我是%s, 我今年%d岁。" % ("mary", 18)
print(s)# 我是mary, 我今年18岁。

#format形式
t = "我是{}, 我今年{}岁。".format('mary', 18)
print(t)# 我是mary, 我今年18岁。

1.百分号形式

格式:

  • %[(name)][flags][width].[precision]typecode(称为一个占位符)
  • 传值时,在字符串“...” 后加上百分号%和一个传值的元组,依次传入字符串中的%占位符。

格式说明:

  • []表示该项是可选的,在使用过程中,可以使用,也可以不使用;没有用[]括起来的%和typecode是必选的。
  • 当要字符串中要传入%号,那么用%%表示一个%,比如下方代码:
s = "酒精的度数是%.2f%%"%(47)
print(s)#酒精的度数是47.00%
  • [typecode]有以下常见的几种
  1. s:字符串
  2. d:整数
  3. o:将十进制整数转化为八进制,传入指定位置
  4. x:将十进制转化为十六进制,传入指定位置
  5. e/E:将整数/浮点数转化为科学记数法,传入指定位置
  6. f/F:将整数/浮点数转化为小数位数为6的浮点数,传入指定位置
  • [(name)] 传值时按照name传值,一定要加上(),传值时用字典传入,传入的参数可以不按照字符串中占位符的顺序,如下示例
s = "我是%(name)s, 我今年%(old)d岁。" % {'name': 'mary', 'old': 18}
print(s)# 我是mary, 我今年18岁。

t = "我是%(name)s, 我今年%(old)d岁。" % {'old': 18, 'name': 'mary'}
print(t)# 我是mary, 我今年18岁。
  • [flags]与[width]配合使用,[flags]表示该占位符的对齐方式,[width表示该占位符的宽度]

[flags]可以为以下四种符号:+,-, (空格), 0表示,所表示的意思如下,其中[width]也可以不设置,此时仅剩表格中的正负数的讨论

+ 右对齐 在[width]宽度下,占位符右对齐,如果传入值是一个正数,那么在右对齐的同时,在该数字前加+号,如果传入值是负数,则只右对齐,不作其他操作。
空格 右对齐 在[width]宽度下,占位符右对齐,如果传入值是一个正数,即使传入值前加+号,字符串中也不加正好,同时将原本该用+号的地方用空格替代,如果传入的是一个负数,那么只右对齐,不作其他操作。
0 右对齐 在[width]宽度下,占位符右对齐,其余部分用0填充,如果传入一个整数,不加+号,如果传入一个负数,那么-号放在最左边。
- 左对齐 在[width]宽度下,左对齐,其余地方空格,正数前不加+,负数前加-

 

s = "我是%(name)s, 我今年%(old)+8d岁。" % {'name': 'mary', 'old': +18}
print(s)# 我是mary, 我今年     +18岁。


s = "我是%(name)s, 我今年%(old) 8d岁。" % {'name': 'mary', 'old': +18}
print(s)# 我是mary, 我今年      18岁。


s = "我是%(name)s, 我今年%(old)-8d岁。" % {'name': 'mary', 'old': +18}
print(s)# 我是mary, 我今年18      岁。


s = "我是%(name)s, 我今年%(old)08d岁。" % {'name': 'mary', 'old': +18}
print(s)# 我是mary, 我今年00000018岁。

 

  • [precision]表示当该占位符表示一个浮点数时,小数点后的位数,默认情况下为小数点后6位。
s = "%f" %(6.0)
print(s) #6.000000

当需要仅保留小数点后2位时:

s = "%.2f" %(6.0)
print(s) #6.00

2.format格式

格式:

  • 占位符用{}表示,内部格式为:[[fill]align][sign][#][0][width][,][.precision][type],[]表示可选,所以当{}中什么都没有时,传入什么值就是什么值。
  • 传值时,整体字符串的格式为:".....".format(传入的值),""中包含一些用{}表示的占位符。

格式说明:

  • [fill]:按照某宽度对齐时空白处填充的字符
  • [align]:对齐方式:<左对齐;>右对齐; =仅针对数字类型,右对齐,符号放在填充字符的左侧; ^居中
  • [sign]:针对数字的正负号约定,+正好负号都加;-正号不变,负号要加;空格 正好处用空格填充,负号要加
  • [#]: 对与二进制/八进制/十六进制数,加上#,字符串中会显示0b/0o/0x
  • [,]: 为数字添加分隔符,例如1000000,表示为1,000,000
  • [.precision]: 小数的保留位数
  • [type]: 与百分号形式的相同,参见上文中的表格
  • 声明格式时,都要在{}中先输入冒号:
s = "我是{}, 我今年{}岁。".format('mary', 18)#需按顺序传入
print(s)# 我是mary, 我今年18岁。

s = "我是{1}, 我今年{0}岁。".format(18, 'mary')#需按下标传入
print(s)# 我是mary, 我今年18岁。

s = "我是{name}, 我今年{old}岁。".format(old=18, name='mary')#需键值对传入
print(s)# 我是mary, 我今年18岁。

s = "我是{name}, 我今年{old}岁。".format(**{'old': 18, 'name': 'mary'})#需字典传入
print(s)# 我是mary, 我今年18岁。

s = "酒精的度数是{:.2f}%".format(47)
print(s)#酒精的度数是47.00%

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Python基础】之字符串格式化(%百分号形式和format形式) 的相关文章

随机推荐

  • linux 可视化分区,可视化linux块设备的工具(分区,LVM PV,LV,mdadm设备……)

    我正在寻找一种能够扫描我的无GUI服务器的工具 并以一些丰富的可视化格式创建一个易于理解的所有块设备及其关系 磁盘分区 mdadm设备 LVM PV和LV等 的粗略概述 html pdf svg png 这是一个简单的示例可视化 sda1
  • Angular和RxJS的一些应用场景

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 最近一直看有关rxjs的东西 想学会响应式编程思想 但这种东西没点实操根本不能融会贯通 现在只能借鉴别人的东西分析一下 先上两篇帖子都是关于rxjs在NG上的实际应用 使用
  • 解决CuDNN runtime版本和编译版本不同的问题

    在编译安装好TensorFlow后 可下载示例代码运行 但在执行run all sh时 出现如下错误 该错误意思就是CuDNN的runtime版本和编译时指定的版本不同 2018 05 08 09 00 18 042137 E tensor
  • linux 返回上一级目录 和 返回根目录

    返回上一级目录 cd 返回根目录 cd
  • DRM几个重要的结构体及panel开发

    一 DRM Linux下的DRM框架内容众多 结构复杂 本文将简单介绍下开发过程中用到的几个结构体 这几个结构体都在之前文章里面开发DRM驱动时用到的 未用到的暂不介绍 DRM中的KMS包含Framebuffer CRTC ENCODER
  • 机器智能的未来

    ChatGPT丨小智ai丨chatgpt丨人工智能丨OpenAI丨聊天机器人丨AI语音助手丨GPT 3 5丨OpenAI ChatGPT GPT 4 GPT 3 人机对话 ChatGPT应用 小智ai 小智ai 小智ai 小智ai 小智AI
  • MySql使用全记录4 -----设置root口令(即修改默认口令)

    设置MySql的root用户口令 本文由CSDN 蚍蜉撼青松 主页 http blog csdn net howeverpf 整理编辑 转载请注明出处 参考链接 http wenku baidu com view 73ab05737fd53
  • html取出单元格中的数值_简单爬取html页面的表格中的数据

    关于爬虫方面本人小白一个 通过无所不能的度娘 从中汲取营养 得到一个简单的能用的例子 在这分享一下 供大家一起汲取 首先说一下 你想从一个页面中获取到你想要的数据 首先你要先得到这个页面 然后把获取到的页面 使用Jsoup解析成 Docum
  • 如何使用挂载磁盘和windows服务器进行文件传输?

    如何远程连接windows服务器 相信对于使用过windows服务器的朋友来说这都是非常简单的事情 但是对于如何以及为什么挂载本地磁盘到windows服务器 很多新手就不明白为什么了 那么今天行云管家赵博士就来教大家怎样将本地磁盘挂载到到w
  • Windows10下配置Jmeter环境变量

    安装之后配置环境变量的步骤如下 1 点 此电脑 右键选 属性 2 选择 高级系统设置 环境变量 如下图 3 新建环境变量JMETER HOME 如下截图 4 点击确定之后 编辑 CLASSPATH 的变量 在变量值最后追加内容 JMETER
  • 你要的住宅地产行业数据化解决方案来啦!

    传统标准化复制品和服务越来越难以应付市场需求与行业竞争格局的改变 众多房地产企业寻求数字化转型 在转型过程中 会遇到各种各样的挑战 而一套合适的住宅地产行业数据化解决方案会解决很多难题 助力房企顺利实现转型 我推荐帆软住宅地产行业数据化解决
  • 记一次JAVA自定义@interface中方法定义诡异问题

    诡异问题描述 使用IDEA工具 正常不报错但是执行mvn install的时候 出现了大量的方法和属性不存在提示错误 实际上都要是存在 但无论如何都编译不通过 这种场景有点类似于在一个类中少了个大括号 然后真个类报错的那种感觉 问题查找 排
  • Dyna-Q算法的理论基础及其代码实践【CliffWalking-v0】

    Dyna Q 理论基础 强化学习中 模型 通常指与智能体交互的环境模型 即对环境的状态转移概率和奖励函数进行建模 根据是否具有环境模型 强化学习算法分为两种 基于模型的强化学习 model based 无模型的强化学习根据智能体与环境交互采
  • 2016年蓝桥杯省赛生日蜡烛题目

    生日蜡烛 问题描述 某君从某年开始每年都举办一次生日party 并且每次都要吹熄与年龄相同根数的蜡烛 现在算起来 他一共吹熄了236根蜡烛 请问 他从多少岁开始过生日party的 请填写他开始过生日party的年龄数 注意 你提交的应该是一
  • logistic回归_二元logistic回归分析

    SPSS学习乐园 点击上方 蓝色 字体可关注 logistic回归 前面介绍过多重线性回归分析 该分析方法是研究一个因变量 服从正态分布 与多个自变量的数量关系 多重线性回归分析 在医学研究中 常常需要研究的结局变量不是连续型变量 而是二分
  • Windows 重装系统-U盘启动盘制作及启动

    重启可以解决90 的问题 重装系统可以解决99 9 的问题 本文主要记录一下 相关过程及相关注意事项 以联想电脑为例 一 制作U盘启动盘 准备工具 U盘 最好8G以上 电脑 联网 注意 1 制作完成后U盘会被格式化 1 浏览器搜索 win1
  • GD32F103基础教程—跑马灯实验(六)

    一 教程简介 本章主要是讲解多路GPIO输出实验 及相关GPIO输 出配置方法 并控制LED2和LED3灯实现间隔1s闪烁 二 实验流程 1 工程配置 跑马灯工程配置方法与第五章的配置方法一致 具体请 查看第五章教程 本章不再赘述 2 源码
  • linux下kbhit的头文件,linux下kbhit的实现

    我们知道 在windows下有个键盘测试函数 int kbhit void 使用该函数需要包含头文件conio h 执行时 kbhit测试是否有键盘按键按下 若有则返回非零值 否则返回零 在Unix Linux下 并没有提供这个函数 在li
  • Matlab似然比检验函数,似然比检验 (LR test)

    计量中检验的一般套路是以 p value 显著 拒绝原假设为理想情况 然而总有几个检验的假设是不按套路出牌的 Hansen 检验算一个 LR 检验算第二个 Stata 应用 LR 检验可用于模型的比较和选择 用法与 Hausman 检验相似
  • 【Python基础】之字符串格式化(%百分号形式和format形式)

    字符串的格式化主要有两种 第一种是 形式的 第二种是python特有的 format形式 百分号形式 s 我是 s 我今年 d岁 mary 18 print s 我是mary 我今年18岁 format形式 t 我是 我今年 岁 forma