b_p*_*kes 32 python string format string-formatting
正如标题所述,这两面旗帜有什么区别?看来他们都使用repr()将值转换为字符串?此外,在这行代码中:
"{0!r:20}".format("Hello")
Run Code Online (Sandbox Code Playgroud)
!r前面的0是什么?
Mar*_*ers 56
%r在str.format()格式化操作中不是有效的占位符; 它只适用于旧式%字符串格式.它确实通过repr()函数将对象转换为表示.
In str.format(),!r是等价的,但这也意味着您现在可以使用字符串的所有格式代码.通常str.format()会object.__format__()在对象本身上调用方法,但是通过使用!r,repr(object).__format__()代替使用.
还有!s和(在Python 3中)!a转换器; 这些首先应用str()和ascii()功能.
在0前面指示什么参数的str.format()方法将被用于填充该插槽; 位置参数0是"Hello"在您的案件.您也可以使用命名参数,并将对象作为关键字参数传入:
"{greeting!r:20}".format(greeting="Hello")
Run Code Online (Sandbox Code Playgroud)
除非您使用的是Python 2.6,否则可以省略它,因为没有索引或名称的插槽会自动编号; 第一个{}是0,第二{}个是索引处的第二个参数1等.
| 归档时间: |
|
| 查看次数: |
16601 次 |
| 最近记录: |