- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Python中用format函数格式化字符串的用法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
自python2.6开始,新增了一种格式化字符串的函数str.format(),可谓威力十足。那么,他跟之前的%型格式化字符串相比,有什么优越的存在呢?让我们来揭开它羞答答的面纱。 语法 。
它通过{}和:来代替%。 “映射”示例 。
通过位置 。
1
2
3
4
5
6
|
In [
1
]:
'{0},{1}'
.
format
(
'kzc'
,
18
)
Out[
1
]:
'kzc,18'
In [
2
]:
'{},{}'
.
format
(
'kzc'
,
18
)
Out[
2
]:
'kzc,18'
In [
3
]:
'{1},{0},{1}'
.
format
(
'kzc'
,
18
)
Out[
3
]:
'18,kzc,18'
|
字符串的format函数可以接受不限个参数,位置可以不按顺序,可以不用或者用多次,不过2.6不能为空{},2.7才可以。 通过关键字参数 。
1
2
|
In [
5
]:
'{name},{age}'
.
format
(age
=
18
,name
=
'kzc'
)
Out[
5
]:
'kzc,18'
|
通过对象属性 。
1
2
3
4
5
|
class
Person:
def
__init__(
self
,name,age):
self
.name,
self
.age
=
name,age
def
__str__(
self
):
return
'This guy is {self.name},is {self.age} old'
.
format
(
self
=
self
)
|
1
2
|
In [
2
]:
str
(Person(
'kzc'
,
18
))
Out[
2
]:
'This guy is kzc,is 18 old'
|
通过下标 。
1
2
3
|
In [
7
]: p
=
[
'kzc'
,
18
]
In [
8
]:
'{0[0]},{0[1]}'
.
format
(p)
Out[
8
]:
'kzc,18'
|
有了这些便捷的“映射”方式,我们就有了偷懒利器。基本的python知识告诉我们,list和tuple可以通过“打散”成普通参数给函数,而dict可以打散成关键字参数给函数(通过和*)。所以可以轻松的传个list/tuple/dict给format函数。非常灵活。 格式限定符 。
它有着丰富的的“格式限定符”(语法是{}中带:号),比如:
填充与对齐 填充常跟对齐一起使用 ^、<、>分别是居中、左对齐、右对齐,后面带宽度 :号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充 比如 。
1
2
3
4
5
6
|
In [
15
]:
'{:>8}'
.
format
(
'189'
)
Out[
15
]:
' 189'
In [
16
]:
'{:0>8}'
.
format
(
'189'
)
Out[
16
]:
'00000189'
In [
17
]:
'{:a>8}'
.
format
(
'189'
)
Out[
17
]:
'aaaaa189'
|
精度与类型f 精度常跟类型f一起使用 。
1
2
|
In [
44
]:
'{:.2f}'
.
format
(
321.33345
)
Out[
44
]:
'321.33'
|
其中.2表示长度为2的精度,f表示float类型.
其他类型 主要就是进制了,b、d、o、x分别是二进制、十进制、八进制、十六进制.
1
2
3
4
5
6
7
8
|
In [
54
]:
'{:b}'
.
format
(
17
)
Out[
54
]:
'10001'
In [
55
]:
'{:d}'
.
format
(
17
)
Out[
55
]:
'17'
In [
56
]:
'{:o}'
.
format
(
17
)
Out[
56
]:
'21'
In [
57
]:
'{:x}'
.
format
(
17
)
Out[
57
]:
'11'
|
用,号还能用来做金额的千位分隔符.
1
2
|
In [
47
]:
'{:,}'
.
format
(
1234567890
)
Out[
47
]:
'1,234,567,890'
|
最后此篇关于Python中用format函数格式化字符串的用法的文章就讲到这里了,如果你想了解更多关于Python中用format函数格式化字符串的用法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
有人可以向我解释该声明在C++中的含义吗?我从未见过这样的声明,只是对它的含义和作用感到困惑: int ix((dx > 0) - (dx > 1)); 最佳答案 您可以在括号或花括号中使用初始化程序
我有一个带有单词的mysql数据库。我用 while 语句打印所有单词。所以我觉得: 马铃薯番茄生菜 一切正常,但我想按长度对单词进行排序。我试过: if(strlen($go['words']) =
我忠实的路径遍历方法不再有效——它将空格视为分隔符。好久没做批处理编程了。 使用 FOR 循环时,唯一允许使用分隔符的是 FOR/F 选项。 我不想创建一个包含路径的临时文件,希望做如下的事情: C:
新建一个表: ? 1
我有一些带有多行块的文本文件,例如 2011/01/01 13:13:13,, Some Certain Text,=, [ certain text [
我想在 Vim 中文件的不同部分之间进行一些很好的分离: 我想用#'s 填充一行,然后在中间写上我的标题: ############################# 居中标题############
我该如何逃生 "*"至 "\*"在clojure?似乎无法让它工作: (s/replace "A*B" #"*" "*")生产 "A*B" (当然) (s/replace "A*B" #"*" "\*
这周我一直在努力更熟悉 C。我一直在阅读C Primer Plus (5th Edition) 但是我仍然在使用变量和指针时遇到了一些麻烦。 这是我用来测试的脚本: int main (int arg
在 Dart 中,初始化 List 有什么区别?使用 new 运算符并使用文字对其进行初始化? 情况1: List args = new List(2); args[0] = 1; args[1] =
我有一个字符向量,如下所示: "Internet" "Internet" "-1" "-5" "Internet" "Internet" 我想替换所有负数值的值(-1、-5 等
我有一个名为 gen 的数据框,如下所示 A B C D E 1 NA 4.35 35.3 3.36 4.8
我有一个字符向量,如下所示: "Internet" "Internet" "-1" "-5" "Internet" "Internet" 我想替换所有负数值的值(-1、-5 等
我想知道为什么 CMake 中的变量经常用美元符号和大括号括起来。例如,我看到这个电话in a CMake tutorial . include_directories(${PROJECT_BINAR
我正在尝试做这样的事情 $this->db->count_all("grant_money")->where('id',5); 这可能吗? 如果有任何其他方法可以做到这一点,请告诉我。谢谢 我想像上面
为什么这是有效的: int a = 5; int *aPtr = &a; printf("%i", *aPtr); 但这不是: int a = 5; int aPtr = &a; printf("%i
假设我有一个格式为“11.23.13”的日期字符串,我想用“/”替换每个点,使其看起来像“11/23/13”。 这是我的代码,但它无法正常工作,因为正则表达式看到“.”并将其解释为匹配每个字符而不是新
如何在键盘输入的字符处打印*? 例子: 如果我在控制台中输入:mouli,那么它应该将 m 替换为 *,然后是 o用 * 等等。 最佳答案 使用标准 API 无法解决此问题。如果这确实是一个明确的要求
我最近开始学习 Javascript,同时对卡在这段代码中的代码进行了一些实验: var k = { ab: "hi", func: function() { cons
我需要用“.”替换第一列中的重复项 例如: name1 name1 name1 name2 name2 name3 name3 我需要输出: name1 . . name2 . name3 . 我有这
我有以下两个表 education 和 jobs,每个表都有时间戳字段。在续集语句中,我想选择并确定两个表中保存的两个时间戳中哪个是最新的。 我已经尝试了以下但并不愉快; SELECT e.Sta
我是一名优秀的程序员,十分优秀!