字符串的高级玩法
处理字符串很有意思的,一般的情况下,我们只需要打印出一段特定的话就好了, 但是还有些时候,这些话会应为场景的不同,方式的不同,参数的不同,里面的具体内容就会随之发生改变。 不管你是打印给自己看的,还是输出给别人看的,你都会使用这些方法。
而下面介绍的这些方法就是能让你释放劳动力的功能,让你更关注与编程本身,而不是处理那些繁杂的字符。
在这一节涉及到的功能:
- %百分号模式
"%s" % string
- format功能更多
"{}".format()
- f格式化字符串
f"{n}"
- 修改字符串
string.strip()
string.replace()
string.lower()
string.upper()
string.split()
",".join([])
string.startswith()
string.endswith()
%百分号模式¶
这个应该会算是你接触到最多的一种形式,因为它在很久以前的 Python 版本中就存在了。 下面还有 format,f 字符串都是类似的功能,只是 Python 给你提供了多样化的方式达成类似的目的。
你看,同样是输出一个可配置的字符串,我们就见到了两种不同的方式。而上面第二种,相对而言就算比较简单的,因为当字符串里面要传入的参数变多的时候, 第一种方式将会很混乱。
我们后面再说 % 后面那些标识符的含义,你现在就光看我们的模式,你觉得哪一种看起来比较舒服,比较好写呢?我认为是第二种,你还认为是第一种吗? 要不你自己手打一遍,体验一下~
而且当你要在这句话中塞入更多参数时,即使是第二种也有可能不太适合了,因为我都不记得他们的顺序是怎样的,我很容易就填错了。 那么能不能用字典一样的模式来填入数据呢?
因为用字典我就不用关心后面参数的顺序了,而且有的时候,我还可以重复利用字典里面的 key 做索引。
好了,上面我还卖了个关子,没告诉你们这个 % 后面跟着的字母是什么意思,我现在在下面列了一些比较常用的。
方式 | 意思 |
---|---|
%d | 整数 |
%i | 整数 |
%f | 小数 |
%s | 字符 |
按照这些,我来举几个例子。
关于字符和数字类型,如果你在数字类型(%d,%f)里输入的是字符,它就报错了,不信你试试。 但是你在字符类型(%s)里输入的是数字,它却没有问题,你也可以试试。神不神奇!
还有一个比较常用的方式,就是当你使用小数的时候,你会发现 %f
可以打印出很长一串数字。有时候很占格子,我不喜欢,我可以让它短一点,输出固定长度的小数。
比较上面两种写法,如果你不需要看太多精度的话,你就浓缩一下就好,我觉得简约就是美。同样,下面还有四种对比, 让你看看我不光可以限制小数点后面的长度,也可以对小数点前面的长度做点手脚。
format功能更多¶
format 的方法是在 % 百分号之后发明的,我一般都比较喜欢用这种方法,因为我觉得它更加 Python。为什么这么说呢? 因为在我眼里,我会认为 format 更像是一个编辑字符串的功能,而非像百分号那样的固定搭配。 我们来对比一下 format 和百分号吧,他们能实现的功能差不多的。只是你可以按你的需求挑选一种你喜欢的方式。
从这里看出,简单的使用方式,就是我只用{}
来占位,后面在 format 里按顺序放入值就好了,不用管这个值到底是什么类型。 其实除了这样的方式,format 还支持很多其他方式。比如我给 {}
里放一个数字,表示后面 format 里面的 index,这样我就能复用传入的值了。 这一招就比 百分号 模式要好一些。
除了按照 index 来传字符,我们也可以用字典模式。只要我在 {}
传入一个 key 的名字就好。这样子也是可以复用参数的,方便很多。
同样,我么也是可以在做一些手脚,让它在显示小数或数字时,有更丰富的控制。
对了,你迟早会遇到要在 {}
放入百分号的问题的,至少我在实际中,也遇到了要输入百分号的问题。
我在下面这个表里列一下我觉得你可能会用到的。除了表里这些常用的,还有更多方式,你可以去查一下。
方式 | 意思 |
---|---|
:, | 每 3 个 0 就用逗号隔开,比如 1,000 |
:b | 该数字的二进制 |
:d | 整数型 |
:f | 小数模式 |
:% | 百分比模式 |
f格式化字符串¶
这个是 Python 3.6 之后引入的一个功能,如果你是其他语言转过来学 Python 的,你可能在其他语言中有遇到过这种形式的字符串处理模式。 这就比百分号%和 format 更加方便易用了。因为你写的字更少了,用有限的生命写出更多的 code~
注意,在使用 f 模式的情况下,我们要在字符串开头加上一个 f
。然后用 {}
圈出你的变量名,直接在 {}
引用变量。例子如下:
甚至你还可以在 {}
里做运算,比如下面这样:
不仅仅是节省了代码量,它同样还是保留了一些特殊写法,包括限制字符长度等。做法都和 % 还有 format 类似。
修改字符串¶
除了让你多样化拼接字符串,比如用 %
,format
或者 f
方式,我们还可以用一些字符串功能来处理文字的更多需求。
这些我就在下面列一个表告诉你一些常用的吧,还有些不常用的,你也很容易从网上搜到。
方式 | 意思 |
---|---|
strip | 去除两端的空白符 |
replace | 替换字符 |
lower | 全部做小写处理 |
upper | 全部做大写处理 |
title | 仅开头的字母大写 |
split | 按要求分割 |
join | 按要求合并 |
startswith | 判断是否为某字段开头 |
endswith | 判断是否为某字段结尾 |
下面我来介绍几个我觉得有必要介绍的,因为它很有趣。而且很多还可以和正则表达式配合着用。
剔除前后空白
替换文字
文字的大小写处理
拆散你,重组你
街头巷尾遇见你
总结¶
字符串绝对不是单一的文字,它是有生命的~ 有很多有趣的方法可以丰富你的字符串表达,这里介绍的技术 %
、format
、f
模式,你肯定在使用Python某个阶段中会要用到。