Python格式符说明

格式化输出

例如我想输出 我的名字是xxxx 年龄是xxxx

name = "Lucy"
age = 17
print("我的名字是%s,年龄是%d"%(name, age))

# %[(name)][flags][width][.precision]typecode
# []:可以省略
# (name)
# 表示,根据指定的名称(key),查找对应的值,格式化到字符串当中

1 mathScore = 100
2 englishScore = 96
3 print("我的数学成绩是%d,英文成绩是%d"%(mathScore, englishScore))
4 # 如果我想要把分数颠倒过来,除了下面这种方式还有其他方式吗?
5 print("我的数学成绩是%d,英文成绩是%d"%(englishScore, mathScore))
6 
7 # 可以使用下面这种方式(字典) 借助(name),用法%(name)d
8 print("我的数学成绩是%(es)d,英文成绩是%(ms)d"%({"es": englishScore, "ms": mathScore}))

 

1 # width 表示占用的宽度
2 print("%d" % mathScore)
3 
4 print("%10d" % mathScore)

输出结果::


 flags,表示对齐的方式。默认右对齐
# 空:表示右对齐
# -:表示左对齐
# 空格:''为一个空格,表示在正数的左侧填充一个空格,从而与负数对齐。
# 0:表示使用0填充

 1 print("%-10d" % mathScore)
 2 # 无论有多少空格,都只会填充一个空格
 3 print("% d" % mathScore)
 4 
 5 # 使用0填充  当输出时间的时候,我们先设置宽度为2,然后在宽度前面添加0作为填充。如果数字宽度是1位,则用0填充,如果数字宽度是2位,则不进行填充
 6 min = 8
 7 sec = 9
 8 print("%02d:%02d" % (min, sec))
 9 
10 min = 36
11 sec = 59
12 print("%02d:%02d" % (min, sec))

输出结果::


# .precision  .precision表示的是数字小数点后的精度。当数字为整数的时候,使用%d,当数字是小数的时候,使用%f,精确到2位就使用.2,精确到10位就使用.10

1 score = 89.9
2 # 此时只能输出89
3 print("%d" % score)
4 
5 # 此时小数点后面的数字就能输出出来了
6 print("%.1f" % score)
7 
8 # 默认的小数点后面是6位
9 print("%f" % score)

输出结果为:

89
89.9
89.900000

 

# typecode  这个是必填项

# 注意:二进制是0b开头,八进制是0o开头,十六进制是0x开头
#
# i/d:将整数、浮点数转换成十进制表示,并将其格式化到指定位置。
#
# o:将整数、浮点数转换成八进制表示,并将其格式化到指定位置。
#
# x:将整数、浮点数转换成十六进制表示,并将其格式化到指定位置。
#
# e:将整数、浮点数转换成科学计数法表示,并将其格式化到指定位置(小写e)。
#
# E:将整数、浮点数转换成科学计数法表示,并将其格式化到指定位置(小写E)。
#
# f:将整数、浮点数转换成浮点数表示,并将其格式化到指定位置(默认小数点后保留6位)。
#
# F:将整数、浮点数转换成浮点数表示,并将其格式化到指定位置(默认小数点后保留6位)。
#
# g:自动调整将整数、浮点数转换成浮点型或科学计数法表示(超过6位使用科学计数法),并将其格式化到指定位置(如果是科学计数这是e)
#
# G:自动调整将整数、浮点数转换成浮点型或科学计数法表示(超过6位使用科学计数法),并将其格式化到指定位置(如果是科学计数这是E)
 1 print("将二进制转换成十进制::", end="")
 2 print("%d" % 0b1010)
 3 
 4 print("将八进制转换成十进制::", end="")
 5 print("%d" % 0o10)
 6 
 7 print("将十六进制进制转换成十进制::", end="")
 8 print("%d" % 0x10)
 9 
10 print("将十进制进制进制转换成八进制::", end="")
11 print("%o" % 10)
12 
13 # 科学计数法表示
14 print("%e" % 18889999)
# 2.字符串
#
# s:获取传入对象的_str_方法的返回值,并将其格式化到指定位置。
#
# r:获取传入对象的_repr_方法的返回值,并将其格式化到指定位置。
#
# c:整数:将数字转换成其Unicode对应的,10进制范围0<=i<1114111(python27只支持0-255);字符:将字符添加到指定位置。

# 获取指定数字的Unicode码
print("%c" % 97)

# %:当字符串中存在格式化标志时,需要用%%表示一个百分号。99%
mScore = 99
print("%d%%" % mScore)

# python中百分号格式化是不存在自动将整数转换成二进制表示的方式。
#
# %b是错误的
 
posted @ 2018-07-09 14:30  evilsnake  阅读(4071)  评论(0编辑  收藏  举报