字符串就是一系列字符。在Python中,用引号括起的都是字符串,其中的引号可以是单引号, 也可以是双引号。
在字符串中也可以包含引号和撇号。如:'I told my friend, "Python is my favorite language!"'
字符串为不可变数据类型,调用字符串的方法,不会改变字符串本身,而是生成一个新的字符串。
字符串的常用方法
1. 字符串索引:
>>> name = "abcdefg"
>>> name[0]
'a'
>>> name[-1] # 索引值为-1表示获取最后一个
'g'
>>> len(name) # len()函数可以获取字符串长度
7
2. 修改字符串的大小写:capitalize(),title(),upper(),lower()
>>> name = "abcd efg"
>>> name.capitalize() # 将句首字母改为大写
'Abcd efg'
>>> name.title() # 将每个单词的首字母都改为大写
'Abcd Efg'
>>> name.upper() # 将字符串转成大写
'ABCD EFG'
>>> name = "AbCd Efg"
>>> name.lower() # 将字符串转成小写
'abcd efg'
3. 查找方法:find(),rfind(),index(),rindex()
>>> test = "hello world hello"
>>> test.find("e") # 参数可以是单个字符也可以是字符串,默认从左边开始找,输出第一次找到的位置
1
>>> test.find("hello")
0
>>> test.find("word") # 当找不到时返回-1,可用于判断字符或字符串是否在指定字符串中
-1
>>> test.rfind("hello") # 从右边开始找
12
>>> test.index("e")
1
>>> test.index("world")
6
>>> test.rindex("hello")
12
>>> test.index("a") # 当找不到时会报错,与find()方法的区别
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found
>>>
## 扩展:
#判断字符或字符串是否在指定字符串中还可以用 in 或 not in 例:
>>> "world" in test
True
>>> "word" not in test
True
4. 计数: count()
>>> test = "abcdeabc"
>>> test.count("a")
2
>>> test.count("abc")
2
>>> test.count("s")
0
5. 替换:replace()
>>> test = "hello world hello world"
>>> test.replace("hello", "hi") # 默认将找到的全部替换
'hi world hi world'
>>> test.replace("hello", "hi", 1) # 指定count,则替换不超过count次
'hi world hello world hello world'
6. 切片:split(),partition()
>>> test = "hava a nice day"
>>> test.split() # 默认以空格为分隔符, 返回一个列表
['hava', 'a', 'nice', 'day']
>>> test.split("nice") # 指定分隔符,分隔符不包含在列表中
['hava a ', ' day']
>>> test.split(" ", 2) # 指定最多分割多少次
['hava', 'a', 'nice day']
>>> test.partition("nice") # 分隔符包含在列表中(注意与split()的区别)
('hava a ', 'nice', ' day')
## partition()必须指定分隔符,不能指定分割次数
7. lstrip(),rstrip(),strip()
>>> test = " hello world "
>>> test.lstrip() # 删除左边空格
'hello world '
>>> test.rstrip() # 删除右边空格
' hello world'
>>> test.strip() # 删除两边空格 ## 不能删除字符串中间的空格
'hello world'
8. join():将列表以字符串进行连接,返回一个字符串
>>> list = ["hello", "world"]
>>> " ".join(list)
'hello world'
9. startswith():检查字符串以什么开头,返回布尔值:True或False
endswith():检查字符串以什么开头,返回布尔值:True或False
10. isalnum():字符串是否只包含数字
isalpha():字符串是否只包含字母
isdigit():字符串是否只包含数字或字母
isspace():是否只包含空格
切片:
字符串,列表,元组均可进行切片操作
>>> test = "abcdefgh"
>>> test[1:3] # 包含头,不包含尾
'bc'
>>> test[0:-1] # 切取整个字符串,第二个参数-1代表取到末尾
'abcdefg'
>>> test[0:] # 第一个参数和第二个参数可以省略
'abcdefgh'
>>> test[:-1]
'abcdefg'
>>> test[:]
'abcdefgh'
>>> test[0:-1:2] # 第三个参数代表间隔
'aceg'
>>> test[-1: :-1] # 第三个参数为负数时 反着取,反转字符串
'hgfedcba'
>>> test[-1:0:-1] # 注意 包含头不包含尾,即永远只能取到第二个参数的前一个元素
'hgfedcb'