2.格式化输出(%和format用法)

今天在学习的过程中碰到了格式化输出,想了半天不知道是什么,重新查找了一下,发现是关于输出语句结合输出类型来使用‘%‘。

%的用法

%表示占位符,后面加入的字母是输出类型的缩写

打印字符串:

name='maday'
print('我的名字是:%s'%name)

执行结果:

我的名字是:maday

打印截取字符串:

name='maday'
print('我的名字是:%.2s'%name)

执行结果:

我的名字是:ma

打印字符冲突(打印百分之多少产生报错):

name='maday'
print('%s的进度完成了%5'%name)

执行结果:

ValueError: incomplete format(报错)

前面使用格式化输出后,计算机把第二个百分号也认为成格式化输出符号,正确打印百分之五的方法是使用两个%%,代码如下:

print('%s的进度完成了%%5'%name)

执行结果:

maday的进度完成了%5

打印整数:

age=21
print('我的年龄是:%d'%age)

执行结果:

我的年龄是:21

打印八进制:

a=111
print('我的年龄是:%o'%a)

打印结果:

我的年龄是:157

打印十六进制:

a=111
print('我的年龄是:%x'%a)

我的年龄是:6f

打印浮点数(默认保留小数点后6位):

height=1.75
print('我的身高是%f米'%height)

执行结果:

我的身高是1.750000米

打印浮点数(指定保留小数点位数):

height=1.75
print('我的身高是%.2f米'%height)

执行结果(保留两位小数):

我的身高是1.75米

height=1.75
print('我的身高是%.3f米'%height)

执行结果(保留三位小数):

我的身高是1.750米

指数形式打印:

浮点数默认保留小数后6位

a=18906.234567
print('a的值是:%e'%a)

执行结果:

a的值是:1.890623e+04

指数形式打印(指定保留小数位数):

a=18906.234567
print('a的值是:%.2e'%a)

执行结果:

a的值是:1.89e+04

指定占位符宽度:

name='maday'
height=1.75
age=21
print('我是%7s,我今年%6d岁,我的身高是%8.2f米'%(name,age,height))

执行结果:

我是  maday,我今年    21岁,我的身高是    1.75米

指定占位符宽度(左对齐):

name='maday'
height=1.75
age=21
print('我是%-7s,我今年%-6d岁,我的身高是%-8.2f米'%(name,age,height))

执行结果:

我是maday  ,我今年21    岁,我的身高是1.75    米

指定占位符(声明占位符使用0充填):

name='maday'
height=1.75
age=21
print('我是%-7s,我今年%06d岁,我的身高是%08.2f米'%(name,age,height))

执行结果:

我是maday  ,我今年000021岁,我的身高是00001.75米

-----------------------------------------------------------------------------------------------------------------------------------------------

python中还有一些其他的用法,但是不是很常用,以下表格参考:

 

format的3种不同用法

1. s='我叫{},今年{},爱好{},再说一下我叫{}'.format('太白',36,'girl','太白')

s='我叫{},今年{},爱好{},再说一下我叫{}'.format('太白',36,'girl','太白')

print(s)

执行结果:

我叫太白,今年36,爱好girl,再说一下我叫太白


2. s='我叫{0},今年{1},爱好{2},再说一下我叫{0}'.format('太白',36,'girl')

s='我叫{0},今年{1},爱好{2},再说一下我叫{0}'.format('太白',36,'girl')
print(s)

执行结果:

我叫太白,今年36,爱好girl,再说一下我叫太白


3. s='我叫{name},今年{age},爱好{hobby},再说一下我叫{name}'.format(age=18,name='太白',hobby='girl')
第三中方法不需要注意顺序

s='我叫{name},今年{age},爱好{hobby},再说一下我叫{name}'.format(age=18,name='太白',hobby='girl') 
print(s)

执行结果:

我叫太白,今年36,爱好girl,再说一下我叫太白

 

posted @ 2020-07-27 19:13  maday  阅读(1322)  评论(0)    收藏  举报