说说Python有几种字符串格式化?

您所在的位置:网站首页 字符串的格式化python 说说Python有几种字符串格式化?

说说Python有几种字符串格式化?

#说说Python有几种字符串格式化?| 来源: 网络整理| 查看: 265

公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助!

小猿会从最基础的面试题开始,每天一题。如果参考答案不够好,或者有错误的话,麻烦大家可以在留言区给出自己的意见和讨论,大家是要一起学习的 。

废话不多说,开始今天的题目:

问:说说Python种有几种字符串格式化?

答:Python字符串格式化主要有两种方式:分别为占位符(%)和format方式 。文末还有2种要介绍,所以总共有4种 。

其中,占位符(%)方式比较老,而format方式是比较先进的,目前两者共存。占位符方式在Python2.x中用的比较广泛,随着Python3.x的使用越来越广,format方式使用的更加广泛。

下面分别来说说这几种的区别:

1、占位符(%)方式

012.jpg

举2个例子来说明,其他的大家可以自己去试一下 。

%d 格式整型

age = 29 print("my age is %d" %age) #my age is 29

%s 格式字符串

name = "makes" print("my name is %s" %name) #my name is makes

2、format方式

本文例子参考如下链接: 

https://www.cnblogs.com/lvcm/p/8859225.html

在Python3引入了一个新的字符串格式化的方法,并且随后支持了Python2.7。这个新的字符串格式化方法摆脱了%操作符并且使得字符串格式化的语法更规范了。现在时候通过调用字符串对象的.format() 方法进行格式化。

位置映射

013.jpg

实例(Python3.0+):print("{}:{}".format('192.168.0.100',8888)) #192.168.0.100:8888元素访问

014.jpg015.jpg

实例(Python3.0+):print("{0[0]}.{0[1]}".format(('baidu','com'))) #baidu.com填充对齐

^、分别是居中、左对齐、右对齐

016.jpg

实例(打印九九乘法表):for i in range(1,10): a = 1 while a >> f'Hello, {name}!' 'Hello, Bob!'

2、最后一种,在Python里还有另一个字符串格式化工具:模板字符串。使用模板字符串的最佳的时机就是当你的程序需要处理由用户提供的输入内容时。Template()里面把字符串中某个值用设置变量${key}的方式先写好,然后在substitute()的方式把变量用其他值代替,就完成了字符串的替换。

>>> from string import Template >>> a=Template('would it be the ${key1} when we meet in ${key2}') >>> a.substitute(key1='same',key2='heaven') 'would it be the same when we meet in heaven'

好了,说了这么多格式的方式,那到底要怎么选择呢?Python字符串格式化经验法则:如果你的格式化字符串是由用户提供的,那么就是用模板字符串避免安全问题。不然如果是Python 3.6+的话,就使用字符串插值/f-Strings,如果不是就使用str.format进行字符串格式化。

如果对于参考答案有不认同的,大家可以在评论区指出和补充,欢迎留言!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3