详解字符串格式化输出

很多情况下我们都需要以某种特定格式对所求结果进行输出

通过字符串的格式化,可以输出特定格式的字符串。
(1) 格式化字符串 %( 1 ,值 2)
print('学生人数%d,平均成绩%2.1f'%(15, 81.2))
(2) 字符串 .format( 1, 2,……)
print('学生人数{},平均成绩{}'.format(15, 81.2))
(3) str.format( 格式字符串 1, 1, 2,…)
• print(str.format('学生人数{0},平均成绩{1:2.1f}',15, 81.2))
(4) f-strint fd'{}{}{}'.

%格式符

基本格式

print( 字符串 % 格式字符 1 字符串 % 格式字符 2 字符串 %( 变量 1, 变量 2))
>>> print('我叫%s今年%d岁!'%('小明',10))
我叫小明今年10岁!
>>> print('圆周率%s保留三位小数为%.3f'%('pi',3.1415926))
圆周率pi保留三位小数为3.142

1)  % 格式标志,标识格式开始;
2)[-] 指定左对齐输出;
3)[+] 对正数加正号;
4)[0] 指定空位填0;
5)[m] 指定最小宽度;
6)[.n] 指定精度;
7)  格式字符 指定类型
8)% 格式运算符;
9)x 带转换的表达式

format

基本格式

print(‘字符串{标识*}字符串{标识*}字符串‘.format(变量1,变量2)) 

标识*与顺序无关。

b=100/30+0.004
print(b)
print('我的成绩是{:.2f}'.format(b))

在这里b输出结果是一个无限长的小数,使用format可以控制小数的精确度。

(通过上述例子我们还可以看到使用format时,还自动对小数进行了四舍五入处理) 

round

这里补充一个四舍五入的方法——round函数

round函数有两个参数,其中第一个参数指的是要四舍五入的数据,第二个参数指的是要精确保留的位数。举个例子来说明:

a=3.5647
print(round(a,2))
b=3.5648
print(round(b,3))

 more example:

>>>print('圆周率{}为{}'.format('pi',3.1415926))
圆周率pi为3.1415926
>>>print('圆周率{}保留三位小数为{:+.3f}'.format('pi',3.1415926))
圆周率pi保留三位小数为+3.142
>>> print('圆周率{1}保留三位小数为{0:.2e}'.format(31415926,'pi'))
圆周率pi保留三位小数为3.14e+07

详细参数

{[name][:][fill][align][sign][#][0][width][,][.precision][type]}’.format( 表达式 )
• Name: 可为空,传递参数名;
• Fill=<any character>, 可以填写任何字符;
• Align=“<”“>”“=”“^” ,对其方式,表示左对齐、右对齐、居中对齐等。
• sign=“+”“-” ,符号,表示正负号。
• Width=inter ,是数字宽度,共输出多少位数字。
• Precision=integer,是小数保留位数。(最常用)
• Type=“b”“e”“x” ,表示输出数字的表示方式,如 b 是二进制表示, e 是指数表示, x 是十六进制表示。
位置设定:将格式化内容的位置用大括号{}占位,所有的定义都是在format()函数中执行。
(1) 默认位置:
S = ' I { 0 } { 1 }, and I'am learning '.format ('like', 'Python’)
I like Python, and I'am learning
(2) 设置位置:
S = 'I {1} {0} {1}, and I'am learning'.format('like', 'Python’)
I Python like Python, and I'am learning
(3) 设置关键字:
S = 'I {l} {p}, and I'am learning'.format(p='Python', l='like’)
I like Python, and I'am learning

f-string格式

f-string ,亦称为格式化字符串常量( formatted string literals ),是 Python3.6 新引入的 一种字符串格式化方法, f-string 在形式上是以 f F 修饰符引领的字串 (f‘xxx F‘xxx) ,以 大括号 {} 标明被替换的字段。

格式

f’<text>{<expression><optional!s,!r,or!a><optional:format specifier>}<text>’

 例子

>>> a=18
>>> f'我的年龄是{a}'
'我的年龄是18'
>>>f'我的年龄是{a:8.2f}'
'我的年龄是 18.00'
f-string 大括号内所用的引号不能和大括号外的引号定界符冲突,可根据情况灵活切换 ' "

>>> f'I am {"Niu"}'
'I am Ning'
>>> f'I am {'Niu'}'
File "<stdin>", line 1
f'I am {'Niu'}'
SyntaxError: f-string: expecting '}
>>> f"I am {'Niu'}"
'I am Ning'
>>> f"I am {"Niu"}"
File "<stdin>", line 1
f"I am {"Niu"}

类格式化方法

str.format( 格式化字符串,值 1 ,值 2 ,值 3)

>>>str.format('圆周率{}保留两位小数为{:.3}','pi',3.1415926)
'圆周率pi保留两位小数为3.14'
>>>print(str.format('圆周率{}保留两位小数为{:.3}','pi',3.1415926))
'圆周率pi保留两位小数为3.14'

传送门:Python全套学习笔记

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

牛哥带你学代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值