-
2020-07-20 08:56:53
字符串中数字左边补0, 0>2表示数据总显示宽度为2,以0补齐
print('{:0>2d}'.format(3)) 03
当然我们也可以补齐其它数字,例如8,输出总宽度为5
print('{:8>5d}'.format(3)) 88883
更多相关内容 -
Python字符串格式化的方法(两种)
2020-12-25 11:16:46本文介绍了Python字符串格式化,主要有两种方法,分享给大家,具体如下 用于字符串的拼接,性能更优。 字符串格式化有两种方式:百分号方式、format方式。 百分号方式比较老,而format方式是比较先进的,企图替代... -
Python字符串格式化输出方法分析
2021-01-20 04:46:28本文实例分析了Python字符串格式化输出方法。分享给大家供大家参考,具体如下: 我们格式化构建字符串可以有3种方法: 1 元组占位符 m = 'python' astr = 'i love %s' % m print astr 2 字符串的format方法 m = '... -
浅析python3字符串格式化format()函数的简单用法
2020-09-19 21:28:29主要介绍了python3字符串格式化format()函数的简单用法,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下 -
使用Python将字符串转换为格式化的日期时间字符串
2020-09-18 16:55:17主要介绍了使用Python将字符串转换为格式化的日期时间字符串,需要的朋友可以参考下 -
浅谈Python 字符串格式化输出(format/printf)
2020-12-25 09:11:34Python 字符串格式化使用 “字符 %格式1 %格式2 字符”%(变量1,变量2),%格式表示接受变量的类型。简单的使用例子如下: # 例:字符串格式化 Name = ’17jo’ print ‘www.%s.com’%Name >> www.17jo.com Name =... -
Python中字符串格式化str.format的详细介绍
2020-09-21 10:31:46python从2.6开始支持format,新的更加容易读懂的字符串格式化方法,下面这篇文章主要介绍了Python中字符串格式化str.format的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。 -
Python基础知识——字符串:format() 字符串的格式化
2022-01-18 18:58:25Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。 基本语法是通过 {} 和 : 来代替以前的 % 。 format 函数可以接受不限个参数,位置可以不按顺序。 我们通过示例进行格式...format()基本用法
1、 %号
%号格式化字符串的方式从Python诞生之初就已经存在,
目前,Python官方没有弃用这种方式,但也不推荐这种方式。print (‘我叫%s, 身高%scm’ % (name,height)) ** 传入的值为元组,依次填充
%s :占位符 str()
%d-:十进制 整数
%x : 十六进制
%f :浮点型指定长度:
%5d 右对齐,不足左边补空格
%-5d - 代表左对齐,不足右边默认补空格
%05d 右对齐,不足左边补0浮点数:
%f 默认是输出6位有效数据, 会进行四舍五入
指定小数点位数的输出 %.2f—保留小数点后2位
‘%4.8f’ 4代表整个浮点数的长度,包括小数,只有当字符串的长度大于4位才起作用.不足4位空格补足,可以用%04.8使用0补足空格1.格式化的字符串(%s)与被格式化的字符串(传入的值)必须按照位置一一对应。
print('my name is %s and my age is %s' % ('Bob', '18')) # my name is Bob and my age is 18
2.可以通过字典方式格式化,打破位置带来的限制和困扰
print('my name is %(name)s and my age is %(age)s' % {'age': '18', 'name': 'Bob'}) # my name is Bob and my age is 18
2、 str.format
该format方法实在Python2.6中引入的是字符串类型的内置方法。
因为str.format的方式在性能上和使用的灵活程度上都比%更胜一筹,所以推荐使用。2.1、使用位置参数
按照位置顺序一 一对应
str = 'my name is {} and my age is {}'.format('Bob', '18') print(str) # my name is Bob and my age is 18
2.2、 使用索引
使用索引获取对应的值
str = 'my name is {1} and my age is {0}'.format('18', 'Bob') print(str) # my name is Bob and my age is 18
2.3、使用关键字参数或者字典
通过关键字参数或者字典方式可视化,打破位置带来的限制和困扰
str = 'my name is {name} and my age is {age}'.format(name='Bob', age=18) print(str) # my name is Bob and my age is 18 dict1 = {'name': 'Bob', 'age': 18} str1 = 'my name is {name} and my age is {age}'.format(**dict1) # 使用**解包操作 print(str1) # my name is Bob and my age is 18
2.4、通过变量赋值
print('姓名是:{name},年龄是:{age}'.format(name='Tom',age=20)) 输出: 姓名是:Tom,年龄是:20 变量中使用 name = Ada age = 20 print('Name is {name},age is {age}'.format(name=name,age=age))
2.5、 填充与格式化
先取到值,然后再冒号后设定填充方式:[填充方式][对齐方式][宽度]
{:5} 指定输出长度=50
字符串 {:50}–左对齐
数值 {:50}–右对齐
使用 > < 可以避免字符串/数值对齐方法不一致
右对齐,不足的长度用表示
< 左对齐,不足的长度用表示
^ 中间对齐, 不足的长度用*表示
: 号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充*<50 ,左对齐,50个字符,不够的用‘*’填充 print('{0:*<50}'.format('Hello World')) # Hello World*************************************** *>50 ,右对齐,50个字符,不够的用‘*’填充 print('{0:*>50}'.format('Hello World')) # ***************************************Hello World *^50 ,居中显示,50个字符,不够的用‘*’填充 print('{0:*^50}'.format('Hello World')) # *******************Hello World********************
2.5、 精度与进制
print('{0:.2f}'.format(3.1415926)) # 精确小数点后2位,四舍五入显示 3.14 print('{0:b}'.format(15)) # 以2进制显示 1111 print('{0:o}'.format(15)) # 以8进制显示 17 print('{0:x}'.format(15)) # 以16进制显示 f print('{0:,}'.format(1000000)) # 千分位格式化 1,000,000
3、 f-Strings
str.format()比%格式化高级了一些,但仍然有着自己缺陷,当传入的字符串过多时,仍然显得十分冗长。
Python3.6中引入了f-Strings,不仅比str.format()方法更简洁,同时性能上也略胜一筹。3.1、f-string用大括{ }表示被替换字段,其中直接填入替换内容即可。
name = 'Tom' age = 20 print(f'姓名是:{name},年龄是:{age}') 输出结果: 姓名是:Tom,年龄是:20
3.2、 f-string填充
① 什么是填充?
概念:当我们指定了字符串最终的长度的时候,如果现有的字符串没有那么长,那么我们就用某种
字符(填充字符)来填满这个长度,这就是“填充”。② 演示代码如下:默认使用空格填充
name = "Huang Wei" print(f"{name:>20}") ' Huang Wei' print(f"{name:<20}") 'Huang Wei ' print(f"{name:^20}") ' Huang Wei '
③ 用指定字符进行填充
name = "Huang Wei" print(f"{name:_>20}") '___________Huang Wei' print(f"{name:_<20}") 'Huang Wei___________' print(f"{name:_^20}") '_____Huang Wei______'
注意:填充分为左填充、右填充、居中填充。左填充表示在字符串左侧填充,右填充表示在字符串右侧填充,居中填充表示在字符串左右两侧对称填充。>表示左填充,<表示右填充,^表示居中填充。记忆方法:括号口朝左边,就表示左填充;括号口朝右边,就表示右填充
3.3、 f-string数字符号相关格式描述符:仅针对数值有效
a = 12 b = -25 print(f"{a:+}") '+12' print(f"{b:+}") '-25' print(f"{a:-}") '12' print(f"{b:-}") '-25' print(f"{a: }") ' 12' print(f"{b: }") '-25'
3.4、f-string截断与填充的结合使用
当需要格式化的数据类型是“字符串”的时候,才会发生截断。
截断的含义,以及发生截断的条件,都可以可参考我文章开头提到的文章。a = "Hello" # 当发生截断的时候,如果不指定填充符,默认使用空格填充 print(f"{a:10.3}") 'Hel ' # 在发生截断的时候,使用指定的填充符 print(f"{a:_>10.3}") '_______Hel' print(f"{a:_<10.3}") 'Hel_______'
其他格式:
-
Python字符串格式化输出代码实例
2021-01-21 19:23:51这篇文章主要介绍了Python字符串格式化输出代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 使用占位符%s name = '小飞' print('姓名是: %s' % name)... -
python入门 字符串格式化练习format (5.9)
2021-01-20 02:07:57今天主要讲讲format的基础知识 练习真的太重要了 笔记也真的太重要了 学python真的要多敲多记呀 1.输入1个字符a,用字符乘号( * )分割a,首尾用波浪线(~)组合输出 举个栗子就是输入:a * b * c * d * e 输出的... -
Python字符串格式化
2021-09-01 17:54:33字符串格式化是我们在使用Python中经常用到的功能。Python为我们提供了四种格式化字符串的方法,分别是%运算符、字符串format方法、格式化字符串字面值以及模板字符串。 %运算符 %运算符提供了一种printf风格的字符...欢迎访问我的个人博客
https://vincillau.github.io/
Python字符串格式化
引言
字符串格式化
是我们在使用Python中经常用到的功能。Python为我们提供了四种格式化字符串的方法,分别是%运算符
、字符串format方法
、格式化字符串字面值
以及模板字符串
。%运算符
%运算符
提供了一种printf风格的字符串格式化,它的用法跟C语言中的printf十分相似。先来看一个例子:s = "我叫%s, 今年%d岁。" % ("小明", 18) # 我叫小明, 今年18岁。 print(s)
使用%运算符格式化字符串的语法是
format % values
。format
是一个字符串,values可以是一个对象、元组或字典,format中会有若干个’%'开头的标记转换符
,例如“%d”代表一个整数,“%s”代表一个字符串,这些标记转换符会被values中的条目替换。当value是一个元组时,需要每个转换符与value中的条目一一对应,可以为标记转换符添加映射键,value的类型应为字典。例如:
s = "我叫%(name)s, 今年%(age)d岁。" % {"name": "小明", "age": 18} print(s)
转换标记符包含两个或更多字符并具有以下组成,且必须遵循此处规定的顺序:
- ‘%’ 字符,用于标记转换符的起始。
- 映射键(可选),由加圆括号的字符序列组成 (例如 (somename))。
- 转换旗标(可选),用于影响某些转换类型的结果。
- 最小字段宽度(可选)。 如果指定为 ‘*’ (星号),则实际宽度会从 values 元组的下一元素中读取,要转换的对象则为最小字段宽度和可选的精度之后的元素。
- 精度(可选),以在 ‘.’ (点号) 之后加精度值的形式给出。 如果指定为 ‘*’ (星号),则实际精度会从 values 元组的下一元素中读取,要转换的对象则为精度之后的元素。
- 长度修饰符(可选)。
- 转换类型。
以下是转换符列表:
转换符 含义 ‘d’ 有符号十进制整数。 ‘i’ 有符号十进制整数。 ‘o’ 有符号八进制数。 ‘u’ 过时类型 – 等价于 ‘d’。 ‘x’ 有符号十六进制数(小写)。 ‘X’ 有符号十六进制数(大写)。 ‘e’ 浮点指数格式(小写)。 ‘E’ 浮点指数格式(大写)。 ‘f’ 浮点十进制格式。 ‘F’ 浮点十进制格式。 ‘g’ 浮点格式。 如果指数小于 -4 或不小于精度则使用小写指数格式,否则使用十进制格式。 ‘G’ 浮点格式。 如果指数小于 -4 或不小于精度则使用大写指数格式,否则使用十进制格式。 ‘c’ 单个字符(接受整数或单个字符的字符串)。 ‘r’ 字符串(使用 repr() 转换任何 Python 对象)。 ‘s’ 字符串(使用 str() 转换任何 Python 对象)。 ‘a’ 字符串(使用 ascii() 转换任何 Python 对象)。 ‘%’ 不转换参数,在结果中输出一个 ‘%’ 字符。 转换标志列表:
标志 含义 ‘#’ 值的转换将使用“替代形式”(具体定义见下文)。 ‘0’ 转换将为数字值填充零字符。 ‘-’ 转换值将靠左对齐(如果同时给出 ‘0’ 转换,则会覆盖后者)。 ’ ’ (空格) 符号位转换产生的正数(或空字符串)前将留出一个空格。 ‘+’ 符号字符 (’+’ 或 ‘-’) 将显示于转换结果的开头(会覆盖 “空格” 旗标)。 Python官方文档并不建议我们使用这种方法,因为这种方法不仅需要标识转换符与value一一对应,而且还不能正确格式化元组,列表等类型。所以,在Python中使用格式化字符串建议使用以下三种方法。
字符串format方法
例子:
s = "{} + {} = {}".format(1, 2, 3) # 1 + 2 = 3 print(s)
format
会将参数依次替换字符串中的{}
并返回一个新的str对象。如果需要输出{}
需要用两层花括号({{}}
)“{}”可以具有位置参数,format方法将会用指定位置的参数代替花括号。如果使用位置参数,那么所有的花括号中都必须有位置参数。例如:
s = "{1} + {0} = {2}".format(1, 2, 3) print(s)
“{}”中还可以具有
关键字参数
:s = "我叫{name}, 今年{age}岁。".format(name="小明", age=18) print(s)
位置参数和关键字参数可以混用。
可以使用
**
传递字典作为关键字参数:table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 8637678} print('Jack: {Jack:d}; Sjoerd: {Sjoerd:d}; Dcab: {Dcab:d}'.format(**table)) # Jack: 4098; Sjoerd: 4127; Dcab: 8637678
还可以在花括号中添加格式化参数,详见格式字符串语法。
格式化字符串字面值
Python3.6新增加了
格式化字符串字面值
的特性,可以方便的格式化字符串。例子:
name = "小明" age = 18 print(f"我叫{name}, 今年{age}岁。") # 我叫小明, 今年18岁。
当我们在一个字符串前标注一个
'f'
或'F'
时,Python解释器就认为这个字符串是一个格式化字符串字面值。在这个字符串中使用“{}”将一个变量或表达式括起来,Python就会用变量或表达式的内容替换“{}”。格式化字符串字面值还可以使用格式说明符,用法与str.format相同:price = 12.567 print(f"苹果的价格是{price:.2f}") # 苹果的价格是12.57
转换符
!s
、!r
、!a
分别调用str
、repr
、ascii
对表达式进行求值:class Student: def __init__(self, name: str = "小明", age: int = 18): self.name: str = name self.age: int = age def __str__(self): return self.name + " " + str(self.age) + " __str__" def __repr__(self): return self.name + " " + str(self.age) + " __repr__" print(f"{Student()!s}\n{Student()!r}\n{Student()!a}") # 小明 18 __str__ # 小明 18 __repr__ # \u5c0f\u660e 18 __repr__
格式表达式中不能有反斜杠,否则会报错。即便未包含表达式,格式字符串字面值也不能用作文档字符串。
模板字符串
Python提供的
Template类
也可以用来格式化字符串,它位于string包。使用Template类时,实现实例化一个Template对象。然后调用substitute
或safe_substitute
用传入的参数替换模板字符串中的变量:t = Template("我叫$name, 今年$age岁。") s = t.substitute(name="小明", age=18) print(s) s = t.substitute({"name": "小明", "age": 18}) print(s)
$identifier为替换占位符,它会匹配一个名为 “identifier” 的映射键。如果映射键有歧义可以使用花括号区分。否则Python将匹配尽可能多的字符:
print(Template("$ab").substitute(a=1, ab=2)) # 2 print(Template("${a}b").substitute(a=1, ab=2)) # 1b print(Template("${ab}").substitute(a=1, ab=2)) # 2
substitute或safe_substitute可以接受关键字参数或者字典。这两个方法的区别在于,模板字符串中的一个标识符在传入方法的参数中没有条目与之对应时,substatute会抛出
ValueError
,而safe_substitute会保留$和标识符而不进行替换。想要在字符串中保留
$
可以用$$
转义。参考
-
Python字符串格式化常用手段及注意事项
2020-12-17 08:15:05格式化方式1: 使用f”” ... %和format也是python常用的格式化字符串方式; 如果字符串中需要显示{},则通过{{}}来转义. 格式化方式2: 使用string.Template 使用示例 # -*- coding: utf-8 -*- # @Time : -
Python实现字符串格式化输出的方法详解
2020-12-25 06:33:16本文实例讲述了Python实现字符串格式化输出的方法。分享给大家供大家参考,具体如下: python属于强类型的语言,如果像java一样操作字符串和数字的“+”时,会出现TypeError。而python的格式化方法有多种,比如使用... -
Python format()函数 字符串格式化方法的用法总结(全)
2022-05-04 20:29:41具体地介绍python中的format字符串格式方法简单介绍
函数:str.format()
其中str为一个字符串对象,通过点号调用,如’qiaoqing’.format()这一方法作用为通过变量很方便地生成字符串,即字符串的格式化。
与C语言中的用法相比,比如printf(“%d”, num),主要区别为:
- 通过 {}与:等符号的组合使用 来代替以前的 %,具体用法将在下面说明。
- 如果想要输出大括号,那么需要套两层大括号,即用一层大括号作转义。
具体用法
这一函数的具体用法分为五种:
- 第一种用法:按照顺序格式化
- 第二种用法:通过参数格式化,但直接传入参数
- 第三种用法:通过参数格式化,通过字典设置参数
- 第四种用法:通过参数格式化,通过列表索引设置参数
- 第五种用法:数字格式化
下面在代码中具体说明其用法:
# 第一种用法:按照顺序格式化 "{} {}".format("hello", "world") # 不设置指定位置,按默认顺序格式化,会得到'hello world' "{0} {1}".format("hello", "world") # 设置指定位置格式化,但这里与默认顺序一致,会得到'hello world' "{1} {0} {1}".format("hello", "world") # 设置指定位置格式化,但这里与默认位置不一致,会得到'world hello world' # 第二种用法:通过参数格式化,但直接传入参数 "网站名:{name}, 地址 {url}".format(name="菜鸟教程", url="www.runoob.com") # 会得到:"网站名:菜鸟教程, 地址 www.runoob.com" # 第三种用法:通过参数格式化,通过字典设置参数 site = {"name": "菜鸟教程", "url": "www.runoob.com"} print("网站名:{name}, 地址 {url}".format(**site)) # 会得到:"网站名:菜鸟教程, 地址 www.runoob.com" # 第四种用法:通过参数格式化,通过列表索引设置参数 my_list = ['菜鸟教程', 'www.runoob.com'] print("网站名:{0[0]}, 地址 {0[1]}".format(my_list)) # "0" 是必须的 # 会得到:"网站名:菜鸟教程, 地址 www.runoob.com" # 第五种用法:数字格式化 print("{:.2f}".format(3.1415926))
关于数字的格式化,参考如下表格:
一些符号的用法解释:
- ‘^’, ‘<’, ‘>’ 分别是居中、左对齐、右对齐,后面带宽度。
- ‘:’ 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。
- ‘+’ 表示在正数前显示 +,负数前显示 -。
- (空格)表示在正数前加空格。
- b、d、o、x 分别是二进制、十进制、八进制、十六进制。
-
Python格式化输出字符串方法小结【%与format】
2021-01-20 05:02:36python格式化字符串有%和{}两种 字符串格式控制符. 字符串输入数据格式类型(%格式操作符号) %% 百分号标记#就是输出一个% %c 字符及其ASCII码 %s 字符串 %d 有符号整数(十进制) %u 无符号整数(十进制) ... -
python字符串格式化方式解析
2021-01-20 06:13:54这种格式化并不是很好,因为它很冗长并且容易导致错误,比如没有正确显示元组或字典 2.str.format() name = '李四' age = 18 # 替换字段用大括号进行标记 a1 = hello, {}. you are {}?.format(name,age) print(a1) -
Python 字符串格式化方法
2022-01-24 16:09:171.使用format(arg)方法 将字符串中用 {} 定义的替换域依次用参数arg中的数字替换 In[1]: 'hello,{}'.format('world!') Out[1]:'hello,world!' ...In[2]: '{},{},{}'.format(1,2,4...格式化字符串%(参数1,参数2...... -
Python字符串的格式化
2020-12-21 22:53:16今天我们来讲字符串的格式化。 废话不多说,直接上代码: a = int(input('输入一个数字')) b = int(input('输入一个数字')) print('a+b={}'.format(a+b)) 输出了什么,是不是a+b的结果。是不是很神奇。 现在我们来... -
python字符串格式化什么意思
2020-12-28 18:56:47详细内容python字符串格式化的意思就是用format函数格式化字符串的用法。用法:它通过{}和:来代替传统%方式。1、使用位置参数要点:从以下例子可以看出位置参数不受顺序约束,且可以为{},只要format里有相对应的参数... -
Python中,字符串的格式化
2021-09-14 20:52:16在此讲述,Python字符串格式化的四种方法。 以输出1+2=3为例。(代码在最后显示) 第一种方法: 比较常规,使用str()函数进行转换和加号进行字符串的拼接。 第二种方法: 使用f字符串,将要插入的变量放在花括号... -
一文秒懂!Python字符串格式化之format方法详解
2021-04-27 04:29:30Python字符串格式化之format方法详解一文秒懂!Python字符串格式化之format方法详解format是字符串内嵌的一个方法,用于格式化字符串。以大括号{}来标明被替换的字符串,一定程度上与%目的一致。但在某些方面更加的... -
python-format-js:字符串格式化,如 Python 的 .format()
2021-07-24 01:09:01字符串格式化,如 Python 的 .format() Obs:预期结果与Python相同 安装 节点 安装: $ npm install python-format-js 要么 $ yarn add python-format-js 要求: const format = require ( "python-format-js... -
Python3中的f-Strings增强版字符串格式化方法
2020-12-20 09:12:39在Python3.6提供f-Strings新的字符串格式化语法。不仅更加可读、简洁,相比其他方式也不易造成错误,而且还更快。 看完本文你将学习到如何以及为什么使用f-strings。正式开始之前,我们先看看之前格式化字符串语法。... -
python字符串格式化深入详解(四种方法)
2020-04-21 11:05:11前言:本文详细整理了python字符串格式化的几种方式。 一、使用 % 符号来进行格式化 格式符为真实值预留位置,并控制显示的格式。格式符可以包含有一个类型码,用以控制显示的类型,如下: %s 字符串 (采用str()... -
Python字符串格式化的3种方法
2022-02-19 16:50:47将字符串中的一部分替换为具备某种格式的变量,称为字符串的格式化。 1. 使用%占位符 >>>age = 23 >>>name = 'tom' >>>'Happy birthday %d, %s!'%(age, name) 占位符 ... -
占位符%字符串格式化输出 – python实例
2020-12-21 16:25:33%占位符概念 and python 实例格式化字符串转换符 表2. format2.1基础语法format可以实现%所实现的,但功能更强大2.2 高阶 1. %占位符 概念 and python 实例 %是字符串运算符,被称为格式化操作符。%左边是模版或者... -
Python字符串格式化--format()方法
2017-09-10 16:34:39字符串类型格式化采用format()方法,基本使用格式是: .format() 由一系列的槽组成,用来控制修改字符串中嵌入值出现的位置,其基本思想是将format()方法的中的参数按照序号关系替换到的槽中。槽用大括号({})... -
一文了解python 3 字符串格式化 F-string 用法
2020-12-20 10:22:20从python3.6开始,引入了新的字符串格式化方式,f-字符串. 这使得格式化字符串变得可读性更高,更简洁,更不容易出现错误而且速度也更快. 在Python 3.6之前,有两种将Python表达式嵌入到字符串文本中进行格式化的主要...