当前位置: 首页 > 后端技术 > Python

《Python问学》第一天:第一个绊脚石“格式化字符串”

时间:2023-03-26 18:29:03 Python

2020年教师节,久闻Python大法,作为零基础的业余学习者,踏上了Python之旅寻求知识。在成功搭建Python运行环境和世界打招呼(打印“HelloWorld”)之后,没过多久,暗爽就遇到了可怕的事情——格式化字符串。格式化字符串是每个编程语言都非常基础和常用的功能,但对我来说太难了,真是一连串的技巧!什么是字符串?字符串是做什么用的?人们通过口语和文字交流信息。文本中的符号可以是大小写英文字母、数字和一些符号。字符串(String)是由数字、字母、下划线组成的字符串,一般记为s="a1a2···an"(n>=0)。它是一种在编程语言中表示文本的数据类型。仅使用数字即可成功执行计算机程序。但是,为了方便人机交互,需要在计算机屏幕上显示人类可读的符号和文字。例如,当人们访问Web时,他们使用域名而不是数字IP地址。下图为Google在香港的IP地址。这些东西平时应该没人知道吧……Python中的字符串操作有哪些?字符串操作是每种编程语言的基础。Python有一组可用于字符串的内置方法,这些方法包括:Python字符串连接的方法有哪些?(StringConnection翻译成中文可以是“字符串拼接”或“字符串拼接”,我觉得“字符串拼接”更合适)方法一——直接通过(+)运算符拼接输出结果:HelloWorld!点评:使用这种方法进行字符串拼接操作效率低,因为在python中使用“+”拼接两个字符串时会生成一个新的字符串,生成一个新的字符串需要重新申请内存。当拼接字符的字符串较多时,效率自然会受到影响。方法二——通过str.join()方法拼接输出结果:HelloWorld!点评:该方法一般用于集合转字符串。.join()可以是空字符或任何其他字符。当为任何其他字符时,集合中的字符串将被替换为字符分隔,例如:方法3——通过str.format()方法拼接输出结果:HelloWorld!点评:这种方式拼接字符串时,需要注意字符串中{}的个数必须与格式化方法参数的个数一致,否则会报错。方法四——通过(%)操作符拼接输出结果:HelloWorld!点评:该方法与str.format()基本相同。方法五——多行拼接()输出结果:HelloWorld!点评:Python遇到未闭合的括号时,会自动将多行拼接成一行。方法六——通过字符串模块中的Template对象拼接输出结果:HelloWorld!点评:Template的实现方式是先通过Template初始化一个字符串。这些字符串包含一个键。通过调用substitute或safe_substitute,key值对应方法中传入的参数,实现指定位置字符串的导入。这种方式的好处是不用担心参数不一致导致异常,比如:输出结果:HelloWorld${s3}!Method7-SplicingthroughF-strings在Python3.6.2中,PEP498提出了一种新的字符串格式一种称为“字符串插值”或更通常称为F-strings的机制,F-strings提供了一种明确且方便的嵌入Python表达式的方法格式化成字符串:输出结果:HelloWorld!我们也可以在F-strings中执行函数:outputresult:4*4=16并且F-string运行速度非常快,比%-string和str.format()这两种格式化方式都要快得多知识点:什么是PEP?PEP全称PythonEnhancementProposals,即Python增强提案或Python改进提案,主要通过邮件列表讨论、提案等方式,经过Python核心开发者审核通过,最终形成正式文件。PEP的作用1.了解Python的特性,为什么会涉及到这些特性,它们是如何设计的,如何更好地使用它们;跟进社区动态,学习最佳实践,完善自己的代码;参与热点话题的讨论,或提交新的PEP;更好地理解和使用Python的指南。PEP内容构成从官网我们可以看到PEP主要分为三类:Type1InformationalPEP——这一类PEP是提供信息的,包括通知信息、指导信息等。比如PEP20(TheZenofPython,大名鼎鼎的Python之禅)、PEP404(Python2.8Un-releaseSchedule,声明不会有Python2.8版本)。Type2ProcessPEP-这种类型的PEP主要是Python本身之外的外围信息。比如PEP1(PEPPurposeandGuidelines,即关于PEP的指南)、PEP347(MigratingthePythonCVStoSubversion,即关于迁移Python代码仓库)。Type3StandardPEP——这类PEP主要描述Python的新功能和新实践(Implementation),是提案数量最多的。比如上面提到的字符串拼接方法7的F-strings方法就来自于PEP498(LiteralStringInterpolation,字面字符串插值)。什么是格式字符串?中国有14亿人口,但每个人持有的身份证格式完全一样。身份证背面显示的信息是——“姓名”、“性别”、“民族”、“出生地”、“住址”和“公民身份证号”。我们可以把“姓名”想成一个变量,把“性别”想成一个变量,等等。现在我们使用一种叫做“格式字符串”的东西。每次用双引号或单引号引用一些文本时,都会创建一个字符串。字符串是非常有用的东西。使用特殊的格式和语法把变量的内容放到一个字符串中,相当于告诉python:“嘿,这是一个格式化的字符串,把这些变量放在那几个位置。”想象一下,如果要键入1000个人的ID信息,使用(+)运算符拼接上述字符串,工作量会很大,估计上班的程序员会被逼疯,如果你不小心,你就会犯错误——错误的放置或语法错误。这时候可以使用格式化字符串的方法(比如python格式化)。优点是不需要关注数据类型。单个参数可以多次输出,参数的顺序可以不同。填充方式很灵活,也很强大。内容是我在Python入门第一天的学习心得,标记一下,明天继续……