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

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

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

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

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

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

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

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

1、占位符(%)方式

举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() 方法进行格式化。

位置映射

实例(Python3.0+):

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

关键字映射

实例(Python3.0+):

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

元素访问

实例(Python3.0+):

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

填充对齐

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

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

for i in range(1,10):
    a = 1
    while 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字典以及基本操作?

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

(0)

相关推荐

  • Python格式化输出的三种方式

    一.占位符 程序中经常会有这样场景:要求用户输入信息,然后打印成固定的格式 比如要求用户输入用户名和年龄,然后打印如下格式:My name is xxx,my age is xxx. 很明显,用逗号进 ...

  • Python字符串三种格式化输出

    字符串格式化输出是python非常重要的基础语法,今天就把三种格式化输出做一个简单的总结,希望对大家有帮助. 格式化输出:内容按照一定格式要求进行输出. 1.使用占位符%输出 python2.6版本之 ...

  • python菜鸟教程学习12:输入输出

    Python两种输出值的方式: 表达式语句 print()函数 文件对象的 write() 方法,标准输出文件可以用 sys.stdout 引用. 如果你希望输出的形式更加多样,可以使用 str.fo ...

  • Python基础学习笔记(一)变量与数据类型

    https://m.toutiao.com/is/J3fN6eK/ Python是一门易学的面向对象的程序设计语言,可以轻易地完成界面.文件.封装等高阶需求,可移植性好,有非常多功能强大的库与包,如N ...

  • Python字符串格式化输出 & 函数(3.12)

    Python字符串格式化输出 &amp; 函数(3.12)

  • f-string: 改进的 Python 字符串格式化语法

    f-strings 是 Python 3.6 引入的一种非常棒的字符串格式化方法. 相比其他格式方法,f-strings 更易读.更简洁.更少犯错,也更快. 在了解为什么以及如何使用 f-string ...

  • Python中三种格式化输出的方式

    程序中经常会出现这样的 场景:要求用户输入信息,然后打印成固定的格式 比如要求用户输入用户名和年龄,然后打印如下格式: # a = '------------- info -------------' ...

  • Python 导入 8 种数据文件的方法

    数据分析过程中,需要对获取到的数据进行分析,往往第一步就是导入数据.导入数据有很多方式,不同的数据文件需要用到不同的导入方式,相同的文件也会有几种不同的导入方式.下面总结几种常用的文件导入方法. 大多 ...

  • UC头条:用Python实现33种PS图像算法软件, 让女朋友秀出天际!

    第455篇原创,和30w+一起学Python! 点击加载图片 对于PS,大家都不会陌生,小编身边的很多人都用PS进行过图像的编辑,PS的功能十分强大,但是软件本身十分庞大,对于电脑的性能要求较高. 今 ...

  • 基于 Python 的 11 种经典数据降维算法

    网上关于各种降维算法的资料参差不齐,同时大部分不提供源代码.这里有个 GitHub 项目整理了使用 Python 实现了 11 种经典的数据抽取(数据降维)算法,包括:PCA.LDA.MDS.LLE. ...

  • Selenium2+python自动化45-18种定位方法(find_elements)

    前言 江湖传言,武林中流传八种定位,其中xpath是宝刀屠龙,css是倚天剑. 除了这八种,其实还有十种定位方法,眼看就快失传了,今天小编让失传已久的定位方法重出江湖! 一.十八种定位方法 前八种是大 ...

  • .NET字符串格式化

    概述:我们在将一个类型(通常是数字和时间)转换成字符串时,可以控制其显示的样式.基本的写法就是在调用ToString或Format方法时提供格式化参数,由于具体的参数记不住,每次用到都要上网搜索一番, ...

  • Python的 5 种高级用法,效率提升没毛病!

    任何编程语言的高级特征通常都是通过大量的使用经验才发现的.比如你在编写一个复杂的项目,并在 stackoverflow 上寻找某个问题的答案.然后你突然发现了一个非常优雅的解决方案,它使用了你从不知道 ...