python3格式化输出

输出方式

python3使用print()函数输出,第二种方式是使用str.format()函数格式化输出。

print()格式控制

字符串format方法字符串输入数据格式类型(%格式操作符号)

%%    输出百分号
%c    字符及其ASCII码
%d    有符号整数(十进制)
%u    无符号整数(十进制)
%o    无符号整数(八进制)
%x    无符号整数(十六进制)
%X    无符号整数(十六进制大写字符)
%e    浮点数字(科学计数法)
%E    浮点数字(科学计数法,用E代替e)
%f    浮点数字(用小数点符号)
%g    浮点数字(根据值的大小采用%e或%f)
%G    浮点数字(类似于%g)
%p    指针(用十六进制打印值的内存地址)
%n    存储输出字符的数量放进参数列表的下一个变量中
%r    优先用repr()函数进行字符串转换
%s    优先用str()函数进行字符串转换

’%s’和‘%r’的区别

>>> s = 'Hello\tWorld'
>>> print('%s' % s)
Hello   World
>>> print('%r' % s)
'Hello\tWorld'
>>> 

其实,这里的差异是str()和repr()两个内建函数之间的差异:
- str()与repr()都是python中的内置函数,是直接用来格式化字符串的函数。
- str()输出得到的字符串是面向用户的,具有较好的可读性
- repr()得到的字符串是面向机器的
顺便记一下,__str__与__repr__ 是在类(对象)中对类(对象)本身进行字符串处理。

字符串格式控制

%[(name)][flag][width][.][precision]type
name:可为空,数字(占位),命名(传递参数名,不能以数字开头)以字典格式映射格式化,其为键名
flag:标记格式限定符号,包含+-#和0,+表示右对齐(会显示正负号),-左对齐,前面默认为填充空格(即默认右对齐),0表示填充0,#表示八进制时前面补充0,16进制数填充0x,二进制填充0b
width:宽度(最短长度,包含小数点,小于width时会填充)
precision:小数点后的位数,与C相同
type:输入格式类型,请看上面

str.format()格式控制

{[name][:][[fill]align][sign][#][0][width][,][.precision][type]}
用{}包裹name命名传递给format以命名=值 写法,非字典映射,其他和上面相同

fill =  <any character>  #fill是填充字符
align =  "<" | ">"  | "^"  #align是对齐方式,<是左对齐, >是右对齐,^是居中对齐。
sign  =  "+" | "-"   #sign是符号, +表示在正数前面显示正号, -表示左对齐
# 八进制显示0,十六进制显示0X或者0x
0       数字前面填充0而不是空格 
width =  integer  #width是数字宽度,表示总共输出多少位数字
precision =  integer  #precision是小数保留位数
type =  "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"  #type是输出数字值是的表示方式
比如b是二进制表示;比如E是指数表示;比如X是十六进制表示例子

举例如下:

>>>print('{:,}'.format(123456))
123,456
>>>print('{a:w^8}'.format(a="8"))
www8wwww   #填充w
>>>print('%.5f' %5)
5.00000  #五位小数
>>>print('%-7s3' % 'python')
python 3
>>>print('%.3e' %2016)
2.016e+03 #也可以写大E
>>>print("%d %s" %(123456,"myblog"))
123456 myblog
>>>print('%(what)s is %(year)d' % {'what':'this year','year':2018})
this year is 2018
>>>print('{0}{1}'.format('hello','fun'))
hellofun # 0 1表示参数顺序

>>>print('{}{}{}'.format('csdn','.','net'))
csdn.net

>>>print("{a[0]}{a[1]}{a[2]}".format(a=['csdn','.','net']))
spkk.cn # list

>>>print('{dict[host]}{dict[dot]}{dict[domain]}'.format(dict={'host':'www','domain':'csdn.net',"dot":'.'}))
>www.csdn.net #dict
>>>print('{a}{b}'.format(a='python',b='3'))
python3
>>>print('{who} {doing} {0}'.format('python',doing='like',who='I'))I like python
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值