本文共 1770 字,大约阅读时间需要 5 分钟。
字符串是 Python 中最常见的数据类型,我们可以使用引号(' 或 ")来创建字符串。字符串是以 Unicode 编码的,支持多种语言。比如 '你好', 'Hello World',这些都是基本的字符串。下面介绍下字符串的常用方法及函数 !
在 Python 中用 “”+“” 号连接即可,字符串的截取直接使用根据其下标截取,例如:
>>> str1 = "hello world">>> str2 = "python">>> str1 + ' ' + str2hello 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编程与实战
转载地址:http://gzzvi.baihongyu.com/