【菜鸟零基础学习笔记】Day14-字符串格式化:百分号方式和format方式

字符串格式化

Python的字符串格式化有两种方式: 百分号方式、format方式

【百分号方式】

%[(name)][flags][width].[precision]typecode

具体的解释下面的链接:

python字符串格式化

举例:

msg = 'i am %s and my hobby is alex' %'yxy'
print(msg)   #i am yxy and my hobby is alex

传两个值时:

msg = 'i am %s and my hobby is %s' %('yxy','alex')
print(msg)   #i am yxy and my hobby is alex

实际上,%s可以接受任何类型的值(字符串、数字、列表、元组、集合)

msg = 'i am %s and my hobby is %s' %('yxy',1)
print(msg)

msg = 'i am %s and my hobby is %s' %('yxy',[1,2])
print(msg)

截取部分字符串:

v = 'i am alex and %.4s' %'abcdefgh'
print(v)   #i am alex and abcd

%d只能接受数字

msg = 'i am %s and my hobby is %d' %('yxy',1)
print(msg)   #i am yxy and my hobby is 1

【打印浮点数】

v = 'percent %f' %99.8935982356937
print(v)   #percent 99.893598

四舍五入:

v = 'percent %.2f' %99.8935982356937
print(v)   #percent 99.89

【打印百分比】

v = 'percent %.2f %%' %99.89359823
print(v)   #percent 99.89 %

补充一种传值的方法:

msg = 'i am %(name)s age %(age)d' %{'name':'alex','age':18}
print(msg)   #i am alex age 18

酷炫但没什么用的玩法:

example1:

msg = 'i am %(name)-15s and my hobby is alex' %{'name':'alex'}
print(msg)   #i am alex            and my hobby is alex

example2:

加颜色(为什么我的pycharm输出仍然是没有颜色的?)

msg = 'i am \033[43;1m%(name)-15s\033[0m and hello' %{'name':'alex'}
print(msg)

【format方式】

msg = 'i am {}, age{},{}'.format('seven',18,'alex')   #不一一对应的话会报错
print(msg)   #i am seven, age18,alex

指定位置

msg = 'i am {2}, age{1}, {0}'.format('seven',18,'alex')
print(msg)    #i am alex, age18, seven

指定位置时,不一一对应也不会报错;但是如果大括号内的数字大于索引下标,会报错

​msg = 'i am {1}, age{1}'.format('seven',18,'alex')
print(msg)   #i am 18, age18

类似字典

tpl = "i am {name}, age {age}, really {name}".format(name="seven", age=18)
print(tpl)   #i am seven, age 18, really seven

----------------或者----------------
tpl = "i am {name}, age {age}, really {name}".format(**{"name": "seven", "age": 18})
print(tpl)   #i am seven, age 18, really seven

类似列表

tpl = "i am {0[0]}, age {0[1]}, really {0[2]}".format([1, 2, 3], [11, 22, 33])
print(tpl)   #i am 1, age 2, really 3

指定类型

tpl = "i am {:s}, age {:d}, money {:f}".format("seven", 18, 88888.1)
print(tpl)   #i am seven, age 18, money 88888.100000

-----------也可以用列表的形式实现上述目的-----------

tpl = "i am {:s}, age {:d}".format(*["seven", 18])
print(tpl)   #i am seven, age 18

联合取值

tpl = "i am {name:s}, age {age:d}".format(name="seven", age=18)


tpl = "i am {name:s}, age {age:d}".format(**{"name": "seven", "age": 18})

一些特殊用法

tpl = "numbers: {:b},{:o},{:d},{:x},{:X}, {:%}".format(15, 15, 15, 15, 15, 15.87623, 2)
 
tpl = "numbers: {:b},{:o},{:d},{:x},{:X}, {:%}".format(15, 15, 15, 15, 15, 15.87623, 2)
 
tpl = "numbers: {0:b},{0:o},{0:d},{0:x},{0:X}, {0:%}".format(15)
 
tpl = "numbers: {num:b},{num:o},{num:d},{num:x},{num:X}, {num:%}".format(num=15)

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值