字符串是 Python 中最常见的数据类型,我们可以使用引号(' 或 ")来创建字符串。字符串是以 Unicode 编码的,支持多种语言。比如 '你好', 'Hello World',这些都是基本的字符串。下面介绍下字符串的常用方法及函数 !
在 Python 中用 “”+“” 号连接即可,字符串的截取直接使用根据其下标截取,例如:
>>> str1 = "hello world"
>>> str2 = "python"
>>> str1 + ' ' + str2
hello world python
>>> str2[1: 4]
yth
注意点,下标是从 0 开始的
字符串的格式化有三种方式,通过 % 、str.format() 以及 f-string 。
现在对于 % 的用法用的比较少,主流都是使用后面两种方法。
例如 str.format():
>>> "{} {}".format("hello","world")
hello world
# 设置指定位置,可以多次使用
>>> "{0} {1} {0}".format("hello","or")
hello or hello
而 f-string 格式化就是在字符串模板前面加上f,然后占位符使用 {} , 里面直接放入对应的数据对象。
>>> name = ' GoPython'
>>> f'Hello, welecome to {name}'
Hello, welecome to GoPython
同时,它还支持表达式求值与函数调用,示例如下:
>>> f'A total number of {24 * 8 + 4}'
'A total number of 196'
>>> name = 'GoPython'
>>> f'My name is {name.lower()}'
'My name is gopython'
总之,现在一般都是推荐使用 f-string 的方法,因为它用法更加灵活方便
在 Python 中我们可以直接使用内置函数 replace() 进行替换。示例如下:
>>> str1 = "gopython"
>>> str1.replace("o", "")
gpythn
除此之外,我们还可以通过第三个位置参数指定替换的次数
>>> str1 = "gopython"
>>> str1.replace("o", "", 1)
gpython
除了上面替换方法,还可以通过正则 re.sub() 进行替换.
>>> import re
>>> str1 = "gopython"
>>> re.sub(r"o", "*", str1)
g*pyth*n
上面只是一个很简单的例子,正则替换的功能是很强悍的,有关内容可待后续正则章节一起讲!
比如在很大一串字符串中,我们需要找到某字符在字符串中的位置,一种方法是适用内置函数 str.index(),示例如下:
>>> str1 = "GoPython"
>>> str1.index("o")
1
从上面结果我们可以看到,只查找出第一个 o 的索引,如果我们想查找第二个 o 的索引,可以通过指定开始查找的位置,代码修改如下
>>> str1 = "GoPython"
>>> str1.index("o", 2)
6
注意这个 index()方法和 find() 的区别,后者是判定某字符是否在字符串中,在返回 1,若不在则返回结果 -1.
>>> str1 = "GoPython"
>>> str1.find("m")
-1
另外,查找字符串位置,更建议通过正则来做,在正则中 re.search() 方法不仅能返回匹配的结果,同时会返回其结果位置.
>>> str1 = "my name is python"
>>> result = re.search(r"p", str1)
>>> result.group(), result.start(), result.end()
('p', 11, 12)
前面说过正则的功能很强大,我后面会专门写个正则相关的专题!字符串的用法功能与正则是息息相关的。
未完待续...
了解更多内容,烦请关注公众号 Python编程与实战