python中的格式化输出总的来讲有两种方式,一种是类似于C语言,用“%”后接相应的字母表示要输出的语句,再在后面添加具体的值;二是通过format函数实现。
通过“%”实现格式化输出
在这种方式下,我们的一般格式为[name][flag][width][.][precision]type
,这个格式中各个字段的具体情况如下:
-
name:可以为空
-
flag:为标记限定位,其具体的取值和含义为:
+
— 右对齐-
— 左对齐0
— 如果宽度不足,使用0来补充#
— 将数字的进制显示出来
-
width:指定字符串的宽度
-
.
:小数点 -
type:类型,其具体的取值和含义如下:
c
— 字符,根据ASCall码转换d
— 十进制整数o
— 八进制x
— 十六进制f
— 浮点型e
— 科学技术法g
— 根据数字自动选择s
— 字符串
备注: 在这种格式中,标记限定位一般和%s联合使用。
例如:
name = input("请输入你的姓名:")
age = int(input("请输入你的年龄:"))
job = input("请输入你的工作:")
hobby = input("请输入你的爱好:")
height = float(input("请输入身高:"))
msg = '''-------------- info of %s -----------------
Name : %s
Age : %d
Height : %f(m)
Job : %s
Hobby : %s ''' %(name, name, age,height, job, hobby)
print(msg)
从中,我们可以看到,可以通过百分号后接各种字母来表示不同类型的数据,其中,“%d”表示这里要传入的是一个整数,“%s”表示字符串,“%f”表示实数,然后在字符串结尾后加“%()”,括号里面填入相应位置的变量。
通过format函数实现
1、方案一
用大括号在字符里面占位,然后在后面用format函数填入相应的值即可;基本语法用一个实例进行说明:
msg = '我叫{},今年{},再说一下我叫{}'.format('刘子怡',36,'girl','太白')
2、方案二
用大括号在字符里面占位,不过在括号里面填入相应的序号,当再次需要同样的字符时,在填入该字符第一次出现时的序号即可。还是上述实例:
msg = '我叫{0},今年{1},再说一下我叫{0}'.format('刘子怡',36)
3、方案三
用大括号在字符里面占位,和二不相同的是这里需要填入变量名,然后在format函数中给相应的变量赋值即可;还是以2中实例来看:
msg = '我叫{name},今年{age},再说一下我叫{name}'.format(name='刘子怡',age=18)
常用的转义字符
常用的转义字符及其含义如下:
- \t ——制表符,类似于tab
- \b——退格符,作用域backspace按键相同
- \r——将光标移动到行首,也有说法解释为换行
- \n——换行,作用域回车相同
附: 在进行字符串格式化输出时,如果左对齐和右对齐都不能使字符串的内容对齐,可以使用制表符(\t),并且前面必须用足够的空格与前面内容相隔