一开始搞python字符串类型有哪些的时候,我压根分不清各种写法差别,随便敲代码频繁报错,心态一下子就崩了,反复改半天都找不到问题在哪。
单引号包裹的字符串,是平时随手写最短也最常用的,单行简短文字直接用它就够。之前偷懒所有内容都用单引号,结果字符串里刚好带上单引号,整段代码直接识别错乱,运行直接抛出异常,折腾好久才搞明白冲突到底出在哪。
双引号字符串用法和单引号看着差不多,却能完美避开内部引号冲突。句子里自带标点、缩写符号的时候,换成双引号包裹就不会出错,日常写注释、输出短句用起来格外顺手。很长一段时间都只混用这两种,以为python字符串就只有这两类,完全忽略了其他实用格式。
三单引号字符串,能直接跨行书写内容,不用额外加换行转义符号。写长段落文本、多行备注信息的时候格外方便,不用一点点拼接内容,复制粘贴段落就能直接运行。之前不知道它还能当作多行注释使用,多余写了大量转义字符,代码杂乱又容易出错,调试起来格外烦躁。
三双引号字符串同样支持多行内容,和三单引号功能相近,在编写文档字符串、函数说明内容时大家更偏爱用它。格式规范不一样,调用展示出来的效果也有细微差别,混用久了很容易搞混格式,偶尔就出现排版错乱。
原始字符串也经常被我忽略,路径、正则表达式里大量斜杠符号,普通字符串会被当成转义字符处理。批量读取文件路径的时候频频出错,明明路径填写完全正确,程序就是找不到对应文件,反复核对许久才反应过来字符串格式选错了。
字节字符串和普通字符串差别很大,编码格式不一样,不能直接互相拼接运算。做数据传输、文件二进制读写的时候必须用到它,一开始分不清两者转换逻辑,随便拼接运行直接类型报错,越改越烦躁,甚至不想继续调试。
后来慢慢敲多了代码才懂,不用死记所有分类,按场景挑选对应格式就够用。单行短文本随便用单双引号,长段落就用三引号,涉及路径转义就选原始字符串,网络数据交互再用字节类型。
很多新手和我当初一样,只记住表面写法,不区分适用场景,写出来的代码看着没问题,一运行就各种报错。不同字符串看着外观相似,底层存储、语法规则、兼容场景全都不一样,混用很容易埋下隐藏bug。
有时候明明只是换了一对引号,整体运行结果就天差地别。熬夜调试一段简单输出代码,反复排查逻辑漏洞,到最后才发现只是字符串类型用错,白白浪费大把时间。
直到现在敲代码,还是会偶尔下意识选错格式,烦躁过后又慢慢调整习惯。
再也不会一股脑全部用同一种字符串写法应付所有代码需求。