python使用占位符如果位数不够使用0进行补充_说说Python有几种字符串格式化?...

e2312d6b670f674555442537dd51341c.gif

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

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

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

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

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

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

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

1、占位符(%)方式

4822aecdf22ee943589733490b1016b6.png

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

%d 格式整型

age = 29print("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() 方法进行格式化。

位置映射
d8c947939155a7de4e2383e43f89c9b5.png
实例(Python3.0+):

print("{}:{}".format('192.168.0.100',8888))#192.168.0.100:8888

关键字映射
621efe0f6438a2eb83f4bb0b9cad68f8.png
实例(Python3.0+):

print("{server}{1}:{0}".format(8888,'192.168.1.100',server='Web Server Info :'))#Web Server Info :192.168.1.100:8888

元素访问
404cd94296727644135821f191168ae2.png 1832dd99e54c3fbb6411feabfb8dd084.png
实例(Python3.0+):

print("{0[0]}.{0[1]}".format(('baidu','com')))
#baidu.com

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

8b7bedcfe93df1664a5282506c2c81ea.png

实例(打印九九乘法表):

for i in range(1,10):
    a = 1while a <= i:
        print("{0}*{1}={2:0>2}".format(a,i,a*i),end="\t")
        a +=1
    print()"""
1*1=01
1*2=02 2*2=04
1*3=03 2*3=06 3*3=09
1*4=04 2*4=08 3*4=12 4*4=16
1*5=05 2*5=10 3*5=15 4*5=20 5*5=25
1*6=06 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=07 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=08 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=09 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
"""

Python还有另外2种格式化的,大家也可以自己去了解一下,我这边简单提一下 。

1、在Python 3.6 中添加了一个新的字符串格式化方法,被称为字面量格式化字符串或者“f-strings”。这个新的方法让你能够在字符串常量中嵌入Python表达式。

>>> 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进行字符串格式化。

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

1、谈谈对 Python 和其他语言的区别?

2、谈谈对 Python3 和 Python2 的区别?

3、Python 的特点和优点是什么?

4、说说Python解释器种类以及特点?

5、说说4种常用编码的区别?

6、说说Python面向对象三大特性?

7、说说Python中有几种数据类型?

8、说说Python中xrange和range的区别?

9、Python变量、函数、类的命名规则?

10、说说Python可变与不可变数据类型?

11、说说Python模块主要分哪三类?

12、列举Python中的标准异常类?

13、Python中深拷贝与浅拷贝的区别?

14、Python中迭代器和生成器的区别?

15、Python可迭代对象怎么获取迭代器?

16、你了解什么是 Python 之禅么?

17、说说Python字典以及基本操作?

关注小猿公众号,每天学习一道题

17caa4775b862b82e713dd6433dbc85e.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值