Python字符串详解(二)

str.format()格式化方法

前面说过%百分符格式化方法。Python官方最近逐步在推广str.format()方法的格式化。

fromat()方法是字符串的内置方法,其基本语法如下:

参数列表:[[fill]align][sign][#][0][width][,][.precision][type]

fill            【可选】空白处填充的字符

align           【可选】对齐方式(需配合width使用)


<,内容左对齐

>,内容右对齐(默认)

=,内容右对齐,将符号放置在填充字符的左侧,且只对数字类型有效。 即使:符号+填充物+数字

^,内容居中


sign         【可选】有无符号数字
#            【可选】对于二进制、八进制、十六进制,如果加上#,会显示 0b/0o/0x,否则不显示


+,正号加正,负号加负;
 -,正号不变,负号加负;
空格 ,正号空格,负号加负;


,              【可选】为数字添加分隔符,如:1,000,000

width           【可选】格式化位所占宽度

.precision      【可选】小数位保留精度

type            【可选】格式化类型


传入” 字符串类型 “的参数:
s,格式化字符串类型数据
空白,未指定类型,则默认是None,同s


传入“ 整数类型 ”的参数:
b,将10进制整数自动转换成2进制表示然后格式化
c,将10进制整数自动转换为其对应的unicode字符
d,十进制整数
o,将10进制整数自动转换成8进制表示然后格式化;
x,将10进制整数自动转换成16进制表示然后格式化(小写x)
X,将10进制整数自动转换成16进制表示然后格式化(大写X)


传入“ 浮点型或小数类型 ”的参数:
e, 转换为科学计数法(小写e)表示,然后格式化;
E, 转换为科学计数法(大写E)表示,然后格式化;
f , 转换为浮点型(默认小数点后保留6位)表示,然后格式化;
F, 转换为浮点型(默认小数点后保留6位)表示,然后格式化;
g, 自动在e和f中切换
G, 自动在E和F中切换

%,显示百分比(默认显示小数点后6位)

参数和用法很多,看得我都晕,全部记下来显然是没必要的,浪费脑细胞。

去除复杂的参数,简单的format格式化方法基本有两类:

1.{0}、{1}、{2}:这一类是位置参数,引用必须按顺序,不能随意调整,否则就乱了。例如:

tpl = “i am {0}, age {1}, really {0}”.format(“seven”, 18)

2.{name}、{age}、{gender}:这一类是关键字参数,引用时必须以键值对的方式,可以随意调整顺序。例如:

tpl = “i am {name}, age {age}, really {name}”.format(name=“seven”, age=18)

下面是一些具体的例子,可以参考使用:

tpl = "i am {}, age {}, {}".format("seven", 18, 'alex')

tpl = "i am {}, age {}, {}".format(*["seven", 18, 'alex'])

tpl = "i am {0}, age {1}, really {0}".format("seven", 18)

tpl = "i am {0}, age {1}, really {0}".format(*["seven", 18])

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

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

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

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

tpl = "i am {:s}, age {:d}".format(*["seven", 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)

更多的用法,请参考官方文档https://docs.python.org/3/library/string.html

字符编码
计算机只能处理数字01,如果要处理文本,就必须先把文本转换为数字01,这种转换方式就称为字符编码。

对于我们而言,你只需要简单记住下面几种编码就好:

ASCII编码:早期专门为英语语系编码,只有255个字符,每个字符需要8位也就是1个字节。不兼容汉字。

Unicode编码:又称万国码,国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。用2个字节来表示汉字。

UTF-8编码:为了节省字节数,在Unicode的基础上进行优化的编码。用1个字节表示英文字符,3个字符表示汉字。天生兼容ASCII编码,所以最为流行。

GB2312:我国早期自己制定的中文编码,世界范围内不通用。

GBK: 全称《汉字内码扩展规范》,向下与GB2312兼容,向上支持ISO10646.1国际标准,是前者向后者过渡过程中的一个承上启下的产物。windows中文版的汉字编码用的就是GBK。也非世界范围通用的编码

其它编码:非以上类型者的统称。属于能不用就不要碰的编码。

最后再强调一次,Python3在运行时全部使用Unicode编码!

另外有这么几条规则,你要记住:

操作系统运行时,在内存中,统一使用的都是Unicode编码,当需要将数据保存到硬盘或者网络传输的时候,就转换为UTF-8编码,进行保存和传输。

用文本编辑器的时候,从文件系统或者说硬盘上读取的UTF-8编码字符被转换为Unicode字符到内存里,供程序或者操作系统使用。编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件。

浏览网页的时候,服务器会把动态生成的Unicode内容转换为UTF-8传输到客户的浏览器。

这就是为什么我们一会说Unicode,一会又用utf-8的原因。

另外,一定要区分代码自己本身的编码和程序要处理的数据的编码!没有特殊要求的情况,请使用utf-8编码。确保文本编辑器使用的是UTF-8 without BOM编码。

至此,特别推荐两套Python基础实力好课,由中公教育IT研究院倾力打造,结合一线大厂实践经验,打磨了两套Python在线基础课。3天挑战Python零基础入门,培养你的Python编程实战能力。

课程详情请点击下方文字链接↓↓↓

小白学Python数据分析3天集训营

Python项目实战:爬虫+数据分析+AI人工智能(深度学习/机器学习)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值