目录
1.字符串创建
用 ' '或者 " "将字符包裹即可
a = '我爱'
b = "牛爷爷"
2.字符串访问
2.1.语法格式
Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。
Python 访问子字符串,可以使用方括号 [] 来截取字符串,字符串的截取的语法格式如下:
变量名[初始索引:末索引]
值得注意的是:在python中,下标索引从0开始。这样的话下图就不难理解了
2.2.实例
a = 'iloveyou'
print(f'a[0] = {a[0]}')
#运行结果:a[0] = i
a = 'iloveyou'
print(f'a[0] = {a[0]}')
#运行结果:a[0] = i
3.字符串操作符
以 a = "love", b="python" 为例
操作符 | 描述 | 实例 |
+ | 字符串拼接 | print(a+b)--->lovepython |
* | 字符串重复 | print(a*3)--->lovelovelove |
[n] | 字符串访问单个元素 | print(a[0])--->l |
[m:n] | 字符串访问子串 (左闭右开原则) | print(b[0:1])--->py |
4.一些转义字符
4.1.转义字符含义
转义字符 | 含义 |
\n | 换行输出 |
\r | 回车,将 \r 后面的内容移到字符串开头,并逐一替换开头部分的字符,直至将 \r 后面的内容完全替换完成。 |
\t | 一个制表位(1个tab键或4个空格) |
\yyy | 八进制数,y 代表 0~7 的字符,例如:\012 代表换行。 |
\xyy | 十六进制数,以 \x 开头,y 代表的字符,例如:\x0a 代表换行 |
\ | 放在末尾,充当续行符 |
\a | 响铃 |
\b | 退格键(1个backspace) |
4.2:实例
print("Hello\b")
#运行结果:Hell
print("line1 \
.. line2 \
... line3")
#运行结果:line1 .. line2 ... line3
import time
for i in range(101):
print("\r{:3}%".format(i),end=' ')
time.sleep(0.05)
#运行效果十分有趣,建议复制自己运行
5.字符串处理函数
5.1.capitalize()
5.1.1.描述
将字符串的第一个字符转换为大写
5.1.2.调用语法
str.capitalize()
5.1.3.参数
无
5.1.4.返回值
str
5.1.5.注意事项
- 将字符串的第一个字符转换为大写,其余字符转化为小写(见实例第一条)
- 若首字符非字母,只会将其余部分转化为小写(见实例第一条)
5.1.6.实例
str = 'i loVE You'
print(f'str.capitalize()={str.capitalize()}')
str2='123 i loVE You'
print(f'str2.capitalize()={str2.capitalize()}')
'''
运行结果:str.capitalize()=I love you
str2.capitalize()=123 i love you
'''
5.2.count()
5.2.1.描述
count() 方法用于统计字符串里某个字符出现的次数。
5.2.2.调用语法
str.count(sub, start= 0,end=len(string))
5.2.3.参数
参数 | 含义 |
sub | 搜索的子串 |
start | 搜索范围的起始下标(第一个元素下标为0),默认为0 |
end | 搜索范围的终点下标,默认值为len(str) |
5.2.4.返回值
int
5.2.5.注意事项
- 搜索区间的指定仍然是左闭右开的
5.3.find()
5.3.1.描述
find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果指定范围内如果包含指定索引值,返回的是索引值在字符串中的起始位置。如果不包含索引值,返回-1。
5.3.2.调用语法
string.find(str, beg=0, end=len(string))
5.3.3.参数
参数 | 含义 |
str | 指定检索的字符串 |
beg | 搜索范围的起始下标(第一个元素下标为0),默认为0 |
end | 搜索范围的终点下标,默认值为len(string) |
5.3.4.返回值
int
5.3.5.注意事项
- 搜索区间的指定还是左闭右开的
5.4.index()
5.4.1.描述
index() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,该方法与 python find()方法一样,只不过如果str不在 string中会报一个异常。
5.4.2.调用语法
string.index(str, beg=0, end=len(string))
5.4.3.参数
参数 | 含义 |
str | 指定检索的字符串 |
beg | 搜索范围的起始下标(第一个元素下标为0),默认为0 |
end | 搜索范围的终点下标,默认值为len(string) |
5.4.4.返回值
int
5.4.5.注意事项
- 搜索区间的指定还是左闭右开的
5.4.6.实例
str = 'beacuse i really really know '
idx = str.index('really')
print(f'really出现的下标为{idx},所以really={str[idx:idx+6]}')
#运行结果:really出现的下标为10,所以really=really
5.5.join()
5.5.1.描述
用于将序列中的元素以指定的字符连接生成一个新的字符串。
5.5.2.调用语法
str.join(sequence)
5.5.3.参数
sequence -- 待连接的有序序列
5.5.4.返回值
str
5.5.5.实例
lis=['i','l','o','v','e','p','y']
print(''.join(lis))
#运行结果:ilovepy
tup=('i','l','o','v','e','p','y')
print(''.join(tup))
#运行结果:ilovepy
5.6.strip()
5.6.1.描述
用于移除字符串头尾指定的字符(默认为空格)或字符序列。
5.6.2.调用语法
str.strip([chars])
5.6.3.参数
chars -- 移除字符串头尾指定的字符序列。
可选参数,默认清除两边的空白符,例如:/n, /r, /t,‘ ’ 等
5.6.4.返回值
str
5.6.5.注意事项
- rstrip()或者lstrip()是针对单边(右边或左边)的strip(),用法同strip()这里不加赘述 见实例第1条
- strip()系列只能够消除str首尾指定的字符串或字符,对于str中间的字符无力回天
- 注意删除多个字符时:只要头尾有对应其中的某个字符即删除,不考虑顺序,直到遇到第一个不包含在其中的字符为止 见实例第2条
5.6.6.实例
str = 'python'.rstrip('n')
print(str)
#运行结果:pytho
addr = '13@163.com'
addr1 = addr.strip('12')
print(addr1)
#运行结果:3@163.com
addr = '1111111111113'
addr1 = addr.strip('12')
#运行结果:addr1='3'
addr = '22222211113'
addr1 = addr.strip('12')
#运行结果:addr1='3'
5.7.split()
5.7.1.描述
split() 方法通过指定分隔符对字符串进行切片,该方法将字符串分割成子字符串并返回一个由这些子字符串组成的列表。
5.7.2.调用语法
str.split(str="", num=string.count(str))
5.7.3.参数
- str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
- num -- 分割次数,如果设置了这个参数,则最多分割成 num+1 个子字符串。默认为 -1, 即分隔所有。
5.7.4.返回值
list
5.8.replace()
5.8.1.描述
将字符串中old子串替换为new子串
5.8.2.调用语法
str.replace(old, new[, max])
5.8.3.参数
- old -- 将被替换的子字符串。
- new -- 新字符串,用于替换old子字符串。
- max -- 可选字符串, 替换不超过 max 次
5.8.4.返回值
str
5.8.5.实例
#!/usr/bin/python3
str = "www.w3cschool.cc"
print ("菜鸟教程旧地址:", str)
print ("菜鸟教程新地址:", str.replace("w3cschool.cc", "runoob.com"))
#运行结果: 菜鸟教程旧地址: www.w3cschool.cc
# 菜鸟教程新地址: www.runoob.com
str = "this is string example....wow!!!"
print (str.replace("is", "was", 3))
运行结果:thwas was string example....wow!!!
6.字符串切片
6.1.语法格式
str[start:end:step]
6.2.参数说明
- start -- 切片起始下标,取0时可省略不写
- end --切片终止下标,不写即为len(str)
- step -- 步长,字面意思,取1可省略
6.3.注意事项
- 数组切片也是左闭右开区间
- 下标索引值可以为负,具体体现见下图
- 如果切片操作的时候方向相互矛盾,不会报错,返回为空
- 步长为正,表示从左往右读取字符串,此时str[start]应该在str[end]的左边;
- 步长为负,表示从右往左读取字符串,此时str[end]应该在str[start]的左边;
6.4.实例
见上图