一文秒懂!Python字符串格式化之format方法详解

一文秒懂!Python字符串格式化之format方法详解

format是字符串内嵌的一个方法,用于格式化字符串。以大括号{}来标明被替换的字符串,一定程度上与%目的一致。但在某些方面更加的方便

1、按照{}的顺序依次匹配括号中的值

s = "{} is a {}".format('Tom', 'Boy')

print(s) # Tom is a Boy

s1 = "{} is a {}".format('Tom')

# 抛出异常, Replacement index 1 out of range for positional args tuple

print(s1)

2、通过索引的方式去匹配参数

这里需要注意的是,索引从0开始计算。

s = "{0} is a {1}".format('Tom', 'Boy')

print(s) # Tom is a Boy

s1 = "{1} is a {2}".format('Tom', 'Lily', 'Girl')

print(s1) # Lily is a Girl

字符串中索引的顺序可以打乱,并不影响匹配。

s = "{1} is a {0}".format('Boy', 'Tom', )

print(s) # Tom is a Boy

3、通过参数名来匹配参数

s = "{name} is a {sex}".format(name='Tom', sex='Boy')

print(s) # Tom is a Boy

同理,如果参数已经确定,可以直接利用{}进行格式化引用。

name = 'Tom'

sex = 'Girl'

# 以f开头表示在字符串中支持大括号内的python表达式

s = f"{name} is a {sex}"

print(s) # Tom is a Boy

4、混搭使用

可以通过索引,参数名来混搭进行匹配。

s = "My name is {}, i am {age} year old, She name is {}".format('Liming', 'Lily', age=10)

print(s) # My name is Liming, i am 10 year old, She name is Lily

需要注意的是,命名参数必须写道最后。负责会编译报错!

s = "My name is {}, i am {age} year old, She name is {}".format('Liming', age=10, 'Lily')

print(s) # SyntaxError: positional argument follows keyword argument

另外,不可以索引和默认格式化混合使用。

s = "{} is a {0}".format('Boy', 'Tom', )

print(s)

s1 = "{} is a {1}".format('Boy', 'Tom', )

print(s1)

以上两种写法均报异常。

# ValueError: cannot switch from automatic field numbering to manual field specification

1、支持对参数部分引用

可以通过索引对参数的部分进行取值。如下:s[0] = w。

s = "The word is {s}, {s[0]} is initials".format(s='world')

# The word is world, w is initials

print(s)

2、数字的处理

普通的直接匹配数字没什么好说的,与基础部分的字符串匹配一样。

s = 'π is {}'.format(3.1415926)

print(s) # π is 3.1415926

如何使用format 保留两位小数呢? 需要使用:.2f,在用%进行格式化时我们使用的是%:.2f

s = 'π is {:.2f}'.format(3.1415926)

print(s) # π is 3.14

s1 = 'π is %.2f'% 3.1415926

print(s1) # π is 3.14

同时这种方法还可以用于字符串截取,不过数字后面就不能加f了。

s = "{:.1}".format('Hello')

print(s) # H

给数字加千位符

s = "{:,}".format(1000000)

print(s) # 1,000,000

将数字转换成二进制

s = "{:b}".format(8)

print(s) # 1000

将数字转换成八进制

s = "{:o}".format(8)

print(s) # 10

将数字转换成十六进制

s = "{:X}".format(12)

print(s) # C

总结如下

b: 输出整数的二进制方式;

c: 输出整数对应的 Unicode 字符;

d: 输出整数的十进制方式;

o: 输出整数的八进制方式;

x: 输出整数的小写十六进制方式;

X: 输出整数的大写十六进制方式;

3、格式处理

通过:+数字指定转换后的字符串长度,不足的部分用空格补充

s = "{:2}b".format('a')

print(s) # a b (a后面补了一个空格)

# 如果指定的长度小于参数的长度,按照原参数匹配

s1 = "{:2}World".format('Hello')

print(s1) # HelloWorld

4、字符的填充

可通过:符号^数字进行字符串的填充。 其中数字为填充后的字符串总长度。

s = "{:*^10}".format('Hello')

print(s) # **Hello***

s = "{:-^20}".format('123456')

print(s) # -------123456-------

如果数字小于字符串的长度,则不进行填充操作。

s = "{:*^3}".format('Hello')

print(s) # Hello

5、list、tuple的拆分

在format格式化时,可使用* 或者 ** 进行对list、tuple拆分。

foods = ['fish', 'beef', 'fruit']

s = 'i like eat {} and {} and {}'.format(*foods)

# i like eat fish and beef and fruit

print(s)

foods = ['fish', 'beef', 'fruit']

s = 'i like eat {2} and {0} and {1}'.format(*foods)

# i like eat fruit and fish and beef

print(s)

dict_temp = {'name': 'Lily', 'age': 18}

# 字典需要用 ** 进行拆分

s = 'My name is {name}, i am {age} years old'.format(**dict_temp)

print(s) # My name is Lily, i am 18 years old

史上最全Python资料汇总(长期更新)。隔壁小孩都馋哭了 — 点击领取

一文秒懂!Python字符串格式化之format方法详解相关教程

Python、C / C ++、Java大比拼:外部文件的输入与输出

Python、C / C ++、Java大比拼:外部文件的输入与输出 竞争编程中,大多数时候我们需要输入输出手动检查我们的代码。遇到图形,字符串或输入数据的大量输入之类的问题,将会变得很麻烦,因为它肯定会超时或者键入错误数据的机会将会增加。为了简便,我们只需

Python_描述性统计(缺失率)遍历

Python_描述性统计(缺失率)遍历 (之前博文中也写过类似代码,这版更简单高效了) 一、描述性统计–汇总 # =============================================================================# 描述性统计--汇总# =========================================

一文理解设计模式--命令模式(Command)

一文理解设计模式--命令模式(Command) 命令模式(Command) 命令模式就是将命令包装成java对象,来保存命令历史记录和恢复上一个状态、重复执行命令,比如我们写代码的撤销(undo)、取消撤销(redo) 需要 undo 、 redo 功能,每个命令具有记录状态功能,

基于Python3+PyQt5开发的GUI精美框架界面导航定位与测量综合系统

基于Python3+PyQt5开发的GUI精美框架界面:导航定位与测量综合系统-GNSSAMS Offcial 1.2.0 https://dgzc.ganahe.top 1.1 开发背景 1.2 开发目标与应用场景 1.3 版本功能与特性 新增了三维建模功能,由手机等简易设备,拍摄一个物体多个角度具有高重叠区的图

Python绘图问题:Matplotlib中%matplotlib inline的百分号%的含

Python绘图问题:Matplotlib中%matplotlib inline的百分号%的含义 Python绘图问题:Matplotlib中%matplotlib inline是什么、如何使用? %matplotlib inline 是一个 魔法函数 (Magic Functions)。官方给出的定义是:IPython有一组预先定义好的所谓的魔法函数

2020年10月编程语言排行榜C语言稳居第一Python或即将超Java

2020年10月编程语言排行榜:C语言稳居第一,Python或即将超Java TIOBE已公布2020年10月的编程语言排行榜。 C语言依然排行第一了,随后分别是Java、Python、C++、C#。 前20名排行如下: Python从去年开始就已经登上了TIOBE榜单的第三位,但它的受欢迎程度一直

python Selenium自动化测试 访问校园网爬取成绩数据

python Selenium自动化测试 访问校园网爬取成绩数据 这个就是能够模拟浏览器的操作然后来实现一些自动的功能,然后就随便写了一个从校园网中爬取成绩的功能,并且输出平均绩点。相对来说程序实现比较简单。分为几个部分。 1.实现登陆操作; 2.爬取成绩 3.对成绩

怎么学python最快他说你需要这个工具

怎么学python最快,他说,你需要这个工具 懂中文你就能学会python,但你需要一些靠谱的工具。 python作为一门十分容易上手的编程语言,连小学生都在学习,所以,不管你是从事什么工作,都可以学会这门编程语言。 那么作为初学者,如何才能有效的学好python呢

python字符串format方法参数解释,一文秒懂!Python字符串格式化之format方法详解相关推荐

  1. python中的字符串是什么,一文秒懂Python中的字符串

    摘要:本文将告诉您Python中的字符串是什么,并向您简要介绍有关该概念的所有知识. 因此,让我们开始吧. 什么是Python中的字符串? 我们许多熟悉C,C ++等编程语言的人都会得到诸如" ...

  2. python字符串_Python字符串格式化%s%d%f详解

    关于讨论输出格式化的问题,小编不是一时兴起,之前学习python的时候就经常遇到输出时"%d",一直没有仔细学习,今天又看到了,下面分享一个简单实例,python输出99乘法表: ...

  3. python 字符串格式化%s_Python字符串格式化%s%d%f详解

    关于讨论输出格式化的问题,小编不是一时兴起,之前学习python的时候就经常遇到输出时"%d",一直没有仔细学习,今天又看到了,下面分享一个简单实例,python输出99乘法表: ...

  4. python字符串格式化详解_Python字符串格式化%s%d%f详解

    Python字符串格式化%s%d%f详解 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  Python字符串格式化%s%d%f详解.txt ] (友情提示:右键点上 ...

  5. [Python从零到壹] 四十七.图像增强及运算篇之腐蚀和膨胀详解

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  6. python记录日志_5分钟内解释日志记录—使用Python演练

    python记录日志 Making your code production-ready is not an easy task. There are so many things to consid ...

  7. python从外部传入参数_从另一个Python脚本运行一个Python脚本,并传入参数 - python...

    我想从另一个Python脚本运行一个Python脚本.我想像使用命令行一样传递变量. 例如,我将运行我的第一个脚本,该脚本将遍历值列表(0.1.2.3),并将其传递给第二个脚本,依次为script2. ...

  8. 字符串url获取参数_如何从URL查询字符串获取示例参数或将其附加到URL查询字符串(示例)?...

    字符串url获取参数 让我们剖析几个简单的用例,并查看视图参数的工作原理(视图参数名称不是强制性的,以匹配通过URL查询字符串传递的请求参数,但在本文中,我们将重点讨论这种情况): 情况1 在inde ...

  9. time库是python中处理时间的标准库_python语言time库和datetime库基本使用详解

    今天是边复习边创作博客的第三天,我今年大二,我们专业开的有这门课程,因为喜欢所以更加认真学习,本以为没人看呢,看了后台浏览量让我更加认真创作,这篇博客花了2个半小时的时间,结合自己所学,所思,所想写作 ...

最新文章

  1. 深入分析ADO.NET中的DataSet对象
  2. Oracle Advisor
  3. Django POST请求错误
  4. Javascript 方法大全
  5. C语言:gcc编译过程及make命令、makefile语法规则
  6. java 修改 referer_看好你的门-客户端传数据-用java修改referer
  7. oracle压缩参数,Oracle 11g版本EXPDP 的COMPRESSION参数压缩比堪比“gzip -9”
  8. 做自媒体的目的是让人记住你
  9. JAVA变量初始化赋值null
  10. FPGA 闪烁LED
  11. 申万一级行业日指数_2017年申万一级行业分类表
  12. python识别手写文字_python实现ocr-手写体识别
  13. 中兴服务器bios启动顺序设置,bios设置启动图解教程
  14. RNA-seq那些事儿
  15. 防雷知识:什么是雷电浪涌
  16. Arduino IDE+_Attiny13/85实践(四) Mind+ 与Attiny85
  17. 电话薄程序java程序实现
  18. php 百度天气接口api接口,PHP调用百度天气接口API实现查询实时天气
  19. 用于Chrome的前端开发插件
  20. python反恐精英基础版_python反恐精英

热门文章

  1. Pytorch 的repeat函数
  2. 02.Java开发环境搭建
  3. 简述矩阵的秩和向量组的秩的定义 从定义出发分析两者之间的相互关系
  4. 【大学物理·恒定电流的磁场】恒定电流
  5. 【分享】许多 有意思的 颜文字表情包
  6. Android 中 View 的手势事件处理
  7. C++ Primer Plus 第六版编程练习——第6章
  8. 深圳移动实习生面试题
  9. 常用的几种RAID工作模式
  10. 停邀请返佣成交量骤减,创业板上线即崩,FCoin的神话还能延续吗?