Python字符串格式化输出的方式,简述Python中字符串格式化使用的符号
程序的输出可以采取多种形式:我们可以将数据以人类可读的形式打印在屏幕上,或者将其写入文件供后续使用。
格式化输出
到目前为止,Python中输出值的方式有两种:表达式语句和print()函数。(第三种方法是使用file对象的write()方法;标准文件输出可以参考sys.stdout方法,具体可以参考库参考手册。)
通常,您希望控制程序输出的格式,而不仅仅是打印由空格分隔的值。在Python中,有如下几种打印格式方法:
使用f字符串字符串。这样的字符串需要在引号前以F或F开头。您可以使用{和}包装想要嵌入字符串的Python表达式。表达式可以是变量或文字值。
年份=2016年;event=公投
{ year } { event }的结果
2016公投结果 str.format()是第二种格式化字符串的方式。与第一种方法相比,这种方法需要你做更多的操作。仍然可以在字符串中使用{和}来嵌入变量,也可以进行详细的格式化设计。但这需要你提供与之对应的格式化内容。
当然,您也可以通过分割和连接字符串来格式化字符串。这个方法可以创建任何你想要的格式。在字符串类型中,有一些方法可以用指定的列宽填充字符串。
如果在调试过程中只想打印一些变量而不打印格式,也可以使用repr()函数或str()函数将任意值转换成字符串。
str()函数可以以人类可读的形式呈现值,而repr()函数以解释器可读的形式呈现值(如果没有相应的转换语法,将生成SyntaxError异常)。如果一个对象不适合人类可读的形式,str()函数的返回值与repr()函数的返回值相同。在Python中,数值、链表、字典等结构。以上两个功能都有自己统一的呈现方式。但是对于字符串来说,以上两个函数都有自己独特的呈现方式。
下面的例子:
你好,世界。
字符串
“你好,世界,”
报告
\ \ 你好,世界。
str(1/7)
0.14285714285714285
x=10*3.25
y=200*200
s=Thevalueofxis repr(x),而is repr(y) .
印刷品
值是32.5,是40000.
#对于字符串,repr()函数添加引号和反斜杠:
.hello=hello,world\n
hellos=repr(你好)
打印(你好)
你好,世界\n
#repr()函数的参数也可以是Python对象:
.是
pr((x,y,('spam','eggs')))
"(32.5,40000,('spam','eggs'))"string 模块包含 Template 类来提供额外的在字符串中嵌入变量的方法。该方法使用占位符,比如 $x 来内嵌变量,变量的值存放在字典中。这种方法对字符串的格式化控制较少。
格式化字符串文字
格式化字符串文字 (简称 f-strings )允许你在字符串中包含 Python 表达式的值,方法是在字符串前面加上 f 或者 F ,并将表达式写成 {expression} 格式。
在表达式后面可以加上格式说明符。这样能够更好地控制表达式值的输出格式。下面的例子将 PI 舍入到小数位数后三位。
>>>importmath在':'之后加上一个整数表示该字段的最小字符数,这对于列排序很有用。>>>print(f'Thevalueofpiisapproximately{math.pi:.3f}.')
>>>table={'Sjoerd':4127,'Jack':4098,'Dcab':7678}也可用其他修饰符来转换要格式化的值。'!a'表示应用ascii()函数 ,'!s'表示应用str()函数, 另外'!r'表示应用repr()函数:>>>forname,phoneintable.items():
...print(f'{name:10}==>{phone:10d}')
...
Sjoerd==>4127
Jack==>4098
Dcab==>7678
>>>animals='eels'有关这些格式规范的参考,请参阅参考指南 最小字符串格式化。>>>print(f'Myhovercraftisfullof{animals}.')
Myhovercraftisfullofeels.
>>>print('Myhovercraftisfullof{animals!r}.')
Myhovercraftisfullof'eels'.
format () 字符串格式化方法
str.format() 的基本使用方法如下:
>>>print('Wearethe{}whosay"{}!"'.format('knights','Ni'))其中的括号和字符(称为格式字段)将用传入str.format()方法中的对象来替换。括号中的数字可用于表示传递给str.format()方法的对象的位置。Wearetheknightswhosay"Ni!"
>>>print('{0}and{1}'.format('spam','eggs'))如果在str.format()方法中使用关键字参数,其值等于参数名称对应的值。spamandeggs
>>>print('{1}and{0}'.format('spam','eggs'))
eggsandspam
>>>print('This{food}is{adjective}.'.format(位置和关键字参数可以任意组合:...food='spam',adjective='absolutelyhorrible'))
Thisspamisabsolutelyhorrible.
>>>print('Thestoryof{0},{1},and{other}.'.format('Bill','Manfred',如果你有一个不想拆分的长字符,使用名称而不是位置来进行格式化将会是一个更好的方法。这可以简单的使用'[]'符号来获取字典中的键other='Georg'))
ThestoryofBill,Manfred,andGeorg.
>>>table={'Sjoerd':4127,'Jack':4098,'Dcab':8637678}上面的方法也可以使用 '**' 将字典中的信息进行传递。>>>print('Jack:{0[Jack]:d};Sjoerd:{0[Sjoerd]:d};'
...'Dcab:{0[Dcab]:d}'.format(table))
Jack:4098;Sjoerd:4127;Dcab:8637678
>>>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
操作符 '%' 同样可以被用来格式化字符串。它将该操作符左侧参数解释为'sprintf ()' 样式的字符串应用到操作符右侧参数,并且返回字符串。例如:
>>>importmath>>>print('Thevalueofpiisapproximately%5.3f.'%math.pi)
Thevalueofpiisapproximately3.142.
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。