字符串格式化

字符串的格式化是一种拼接字符串输出样式的手段,更灵活方便
join拼接只能使用分隔符,且要求被拼接的是可迭代对象
+拼接字符串还算方便,但是非字符串需要先转换为字符串才能拼接
在2.5版本之前,只能使用printf style风格的print输出(2.7之后基本不用,使用format函数)
printf-style formatting,来自于C语言的printf函数
格式要求:
      占位符:使用%和格式字符组成,例如%s、%d等
     s调用str(),r会调用repr()。所有对象都可以被这两个转换。
    占位符中还可以插入修饰字符,例如%03d表示打印3个位置,不够前面补零

 format % values,格式字符串和被格式的值之间使用%分隔
values只能是一个对象,或是一个和格式字符串占位符数目相等的元组,或一个字典

format函数

format函数格式字符串语法——Python鼓励使用
"{} {xxx}".format(*args, **kwargs) -> str
args是位置参数,是一个元组
kwargs是关键字参数,是一个字典
花括号表示占位符
{}表示按照顺序匹配位置参数,{n}表示取位置参数索引为n的值
{xxx}表示在关键字参数中搜索名称一致的
{{}}表示打印花括号

关键字参数或命名参数
"{server} {1}:{0}".format(8888, '192.168.1.100', server='Web Server Info : '),位置参数按照序号匹配,关键字参数按照名词匹配(关键字参数只能放在最后)
访问元素
"{0[0]}.{0[1]}".format(('magedu','com'))  -->'magedu.com' 元组相当于一个元素,索引为0

coord =(3,5)

"X: {0[0]}; Y: {0[1]}".format(coord)--->'X: 3; Y: 5'

"X: {0}; Y:{0[1]}".format(coord)--->'X: (3, 5); Y:5'

"X: {}; Y: {}".format(coord[0],coord[1])---->'X: 3; Y: 5'

对象属性访问
from collections import namedtuple
Point = namedtuple('Point','x y')
p = Pint(4o,5)
"{{{0.x},{0.y}}}".format(p)--->"{4,5}"

"{{{},{}}}".format(p.x,p.y)--->"{4,5}"

octets = [192, 168, 0, 1]
{:02X}{:02X}{:02X}{:02X}'.format(*octets)

'C0A80001'

16进制

pythonformat()函数详解 - 百度文库

print("1->{} {}".format("hello","world")) #不设置指定位置,按默认顺序
print("2->{0} {1}".format("hello","world"))#设置指定位置
print("3->{1} {0}".format("hello","world"))#设置指定位置
print()
#参数为数字

{:.n}.format()  宽度,保留位数

{:.nf}.format()   设定小数点位数,只输出整数位时自动四舍五入
print("1->{0:.3f} {1:.1f} {2:.0f}".format(3.1415926,3.1415926,3.5415926))     #设定小数点位数,只输出整数位时自动四舍五入
print("2->{0:+.3f} {1:+.1f}".format(3.1415926,-3.1415926))  #设定输出数字符号
print("3->{0:.3f} {1:.1f}".format(3.1415926,3.1415926))#设定小数点位数

print("{}".format(3**0.5))  3开平方-->1.7320508075688772

print("{:10f}".format(3**0.5))  右对齐

print("{:.2f}".format(3**0.5)) 保留两个小数(小数点后两位)

print("{:.2}".format(3**0.5))   宽度为2

print("{:5.2f}".format(3**0.5))  宽度为5,保留两位小数

print("{:3.3%}".format(1/3))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值