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

1、基本用法

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

s = "{} is a {}".format('Tom', 'Boy')
print(s) # Tom is a Boys1 = "{} 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 Boys1 = "{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

2、进阶用法

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.14s1 = 'π 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 

推荐阅读

误执行了rm -fr /*之后,除了跑路还能怎么办?!

程序员必备58个网站汇总

大幅提高生产力:你需要了解的十大Jupyter Lab插件

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

  1. python字符串format方法参数解释,一文秒懂!Python字符串格式化之format方法详解

    一文秒懂!Python字符串格式化之format方法详解 一文秒懂!Python字符串格式化之format方法详解 format是字符串内嵌的一个方法,用于格式化字符串.以大括号{}来标明被替换的字符 ...

  2. Python字符串格式化之format方法详解

    format是字符串内嵌的一个方法,用于格式化字符串.以大括号{}来标明被替换的字符串,一定程度上与%目的一致.但在某些方面更加的方便 1.基本用法 1.按照{}的顺序依次匹配括号中的值 s = &q ...

  3. 【Python入门】Python字符串的45个方法详解

    Python中字符串对象提供了很多方法来操作字符串,功能相当丰富.必须进行全面的了解与学习,后面的代码处理才能更得心应手,编程水平走向新台阶的坚实基础.目前一共有45个方法,给大家分类整理,可以收藏查 ...

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

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

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

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

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

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

  7. 站长在线Python精讲:在Python中格式化字符串的两种方法详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python中格式化字符串的两种方法详解>.本知识点主要内容有:使用%操作符格式化字符串和使用format()方法格式化字 ...

  8. 站长在线Python精讲:在Python中匹配字符串的3个方法详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python中匹配字符串的3个方法详解>.本知识点主要内容有:使用match()方法进行匹配.使用search()方法进行 ...

  9. python3占位符详解_占位符最新:Python 占位符的使用方法详解_爱安网 LoveAn.com

    关于"占位符"的最新内容 聚合阅读 这篇文章主要介绍了Python 占位符的使用方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以 ...

最新文章

  1. Python中的元编程:一个关于修饰器和元类的简单教程
  2. jQuery的ajax使用场景讨论(c#)
  3. MFC让窗口最前端显示
  4. django-orm-查询基本操作
  5. 来自 PHP 之外的变量(HTML 表单中的数组、变量名中的点)
  6. kotlin 类构造函数_Kotlin类– Kotlin构造函数
  7. Ubuntu 16虚拟机中 iptables操作
  8. 用计算机制作简谱,雅乐简谱免费版
  9. 基于Python分析实现酒店评论的中文情感
  10. matlab 一榀框架,一榀框架(一榀框架的选取依据)
  11. android弹球动画,FlingAnimation/SpringAnimation实现弹球动画
  12. 如何定制下载SMAP产品
  13. 剑指Offer-22反转链表
  14. 如何解决条码打印机隔张打印问题
  15. <Leetcode>算法初步(回顾)
  16. 爬取起点中文网站原创风云榜小说排行
  17. WEB实现Excel下载的一种方式--JAVA EXCEL
  18. axure7.0下载安装教程
  19. MSSQL 系统函数
  20. 向日葵控制服务器显示颜色不对,使用向日葵控制软件后电脑窗口的外观就改变了还不透明了。怎么办?...

热门文章

  1. Java Zip压缩实现(亲测)
  2. SpringBoot图文教程4—SpringBoot 实现文件上传下载(亲测)
  3. java发送http的get、post请求
  4. java list有序还是无序_java的集合框架
  5. 详解centos7虚拟机安装elasticsearch5.0.x-安装篇(自己做测试了,es启动有错误可以在这上面找)
  6. java antd实现登录,基于 antd pro 的短信验证码登录
  7. mysql 过程 的函数的区别是什么意思_Mysql中存储过程和函数的区别是什么
  8. python中数组的维度_Python数组维度问题
  9. python网络通信协议_Python网络概述:协议与体系结构的运用
  10. PHP去除换行符的方法小结(PHP_EOL变量的使用)