Python字符串格式化输出!

Python字符串的格式化输出!


今天博主跟大家聊一聊如何使用Python字符串的格式化输出!不喜勿喷,如有建议欢迎补充、讨论!

关于安装和汉化可以观看博主的这篇文章《下载安装及汉化 》以及Python系列:windows10配置Python3.0开发环境!,安装完毕重启VsCode!以及VSCode配置Python开发环境!


Come on!字符串格式化输出

关于字符串的格式化输出,我们需要了解为什么需要字符串的格式化,同时掌握格式化输出的两种用法:百分号方式、format方式。接下来我们就这两种方式进行介绍:

字符串的格式化的两种用法:

'''
@name: Sunny Chen
@test: test font
@msg: 这是由Sunny Chen创建.
@param: 
@return: 

#百分号方式
'''
info1 ="My name is %s,I'm %d years old."%("Mr_Chen",21)
print(info1)

#format方式
n=input("name-->:")
a=int(input("age-->:"))
info2 ="My name is {name},I'm {age} years old.".format(name=n,age=a)
print(info2)

通过以上例子我们可以看出,字符串的格式化输出使得字符串的使用更加灵活、且格式输出一致。


1. 百分号方式

从上述例子我们可以看到%s、%d等这些占位符,而这些占位符不但为真实值预留位置,同时也规定了真实值输入的数据类型,例如:%s–>表示接收字符串,%d–>表示接收整数。接下来我们看一下这些常用的占位符分别代表的含义:

s,获取传入对象的__str__方法的返回值,并将其格式化到指定位置

r,获取传入对象的__repr__方法的返回值,并将其格式化到指定位置

c,整数:将数字转换成其unicode对应的值,10进制范围为 0 <= i <= 1114111(py27则只支持0-255);字符:将字符添加到指定位置

o,将整数转换成 八 进制表示,并将其格式化到指定位置

x,将整数转换成十六进制表示,并将其格式化到指定位置

d,将整数、浮点数转换成 十 进制表示,并将其格式化到指定位置

e,将整数、浮点数转换成科学计数法,并将其格式化到指定位置(小写e)

E,将整数、浮点数转换成科学计数法,并将其格式化到指定位置(大写E)

f, 将整数、浮点数转换成浮点数表示,并将其格式化到指定位置(默认保留小数点后6位)

g,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是e;)

G,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是E;)

%,当字符串中存在格式化标志时,需要用 %%表示一个百分号

注:Python中百分号格式化是不存在自动将整数转换成二进制表示的方式。

  • 常见的格式化输出:

  • 占位符的接收方式有两种,当然其格式也不一样,两种分别是:元组、字典。

'''
@name: Sunny Chen
@test: test font
@msg: 这是由Sunny Chen创建.
@param: 
@return: 
'''

#1、字符串
st1="My name is %s"%"Mr_ChenYongJia"
print(st1)
#2、以字典的方式传入
st2="My name is %(name)s,I'm %(adj)s."%{"name":"Mr_ChenYongJia","adj":"greater"}
print(st2)
#3、浮点数,并且指定小数点后的位数,四舍五入
st3="The number is %.2f"%68.68888
print(st3)
#4、百分之几
st4="The tax rate is %.2f%%"%12.366566
print(st4)
#5、科学计数法
st5 ="scientific notation-->:%e"%11000012
print(st5)
st6="The tax rate is %(rate).2f%%"%{"rate":12.366566}
print(st6)

2. format方式

format()为字符串的内置方法,从上述例子中也可以看出,以{}为占位符,同时可以以元组和字典的方式传入。

其常见的格式化输出:

'''
@name: Sunny Chen
@test: test font
@msg: 这是由Sunny Chen创建.
@param: 
@return: 
'''

# format方式
#三种方式-->真实值传入的三种方式
#1、占位符为{},以元组的方式传入
# info1="My name is {},I'm {} years old.".format("Mr_ChenYongJia",21)
info1="My name is {},I'm {} years old.".format(*["Mr_ChenYongJia",21])#等同于上式
print(info1)

#2、占位符为{int},以元组的方式传入
# info2="My name is {1},I'm {0} years old.".format(21,"Mr_ChenYongJia")
info2="My name is {1},I'm {0} years old.".format(*[21,"Mr_ChenYongJia"])#等同于上式
print(info2)

#3、占位符为{key},以字典的方式传入
# info3="My name is {name},I'm {age} years old.".format(name="Mr_ChenYongJia",age=21)
info3="My name is {name},I'm {age} years old.".format(**{"name":"Mr_ChenYongJia","age":21})
print(info3)

其他的format应用方式:

'''
@name: Sunny Chen
@test: test font
@msg: 这是由Sunny Chen创建.
@param: 
@return: 
'''

#传入列表中的元素
info1="My name is {0[0]},I'm {1[0]} years old.".format(["Mr_ChenYongJia","amanda"],[21,22])
print(info1)
#规定传入的参数的格式
info2="My name is {:s},I'm {:d} years old.".format("Mr_ChenYongJia",21)
print(info2)
#规定传入的参数格式,并且以字典的形式传入
info3="My name is {name:s},I'm {age:d} years old.".format(name="Mr_ChenYongJia",age=21)
print(info3)
#占位符->s:字符串,d:十进制,b:二进制,0:八进制,x:十六进制,X:大写十六进制,e:科学计数法,.2f:浮点数,保留两位小数
data = "numbers -->{:s},{:d},{:b},{:o},{:x},{:X},{:e},{:.2f}"
print(data.format("hello",15,15,15,15,15,16.6666,16.3333))

提一下如何将文本高亮显示:

#\33[42;1m xxx  \033[0m’,其中42为背景颜色
name ="\033[42;1m Mr_ChenYongJia \033[0m"
print(name)

到这里:Python字符串的格式化输出!分享完毕了,快去试试吧!


最后

  • 更多参考精彩博文请看这里:陈永佳的博客

  • 喜欢博主的小伙伴可以加个关注、点个赞哦,持续更新嘿嘿!

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

陈永佳

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

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

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

打赏作者

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

抵扣说明:

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

余额充值