4.5.4 字符串的切片
🚩字符串的切片和列表的切片其实是一模一样的规则,关于切片操作,在 4.1.3 列表元素的增删改 已经说的很详尽,这里就不做过多赘述,直接上代码:
# 博主:辰chen # 博客地址:https://chen-ac.blog.csdn.net/ # 开发时间:2021/12/15 19:52 # 欢迎大家关注AIoT相关博客~ s='hello,Python' s1=s[:5] # 没有指定起始位置,所以从0开始切 s2=s[6:] # 没有指定结束位置,所以切到字符串的最后一个元素 s3='!' newstr=s1+s3+s2 print(s1) print(s2) print(newstr) print('------------------切片[start:end:step]-------------------------') print(s[1:5:1]) # 从1开始截到5(不包含5),步长为1 print(s[::2]) # 从0开始,默认到字符串的最后一个元素,步长为2 print(s[::-1]) # 从字符串的最后一个元素开始,到字符串的第一个元素结束 print(s[-6::1]) # 从索引为-6开始,到字符串的最后一个元素结束,步长为1
4.5.5 格式化字符串
1️⃣ 使用 % 作占位符,举个例子去介绍:'我的名字是%s,年龄为%d' % (name, age)
,name 会替代 %s,age 会替代%d.
格式字符 | 说明 |
%s | 对应字符串 |
%d | 对应十进制整数 |
%o | 对应八进制整数 |
%x | 对应十六进制整数 |
%f | 对应浮点数 |
2️⃣ 使用 {} 作占位符,这里使用了 format() 方法,举个例子去介绍:'我的名字是{0},年龄为{1}'.format(name, age)
,name 会替代{0},age 会替代{1},如果你还是觉得十分懵逼,下面附上代码去进行说明:
# 博主:辰chen # 博客地址:https://chen-ac.blog.csdn.net/ # 开发时间:2021/12/15 20:10 # 欢迎大家关注AIoT相关博客~ name = '辰chen' age = 19 print('我的名字是%s,年龄为%d' % (name, age)) print('我的名字是{0},年龄为{1}'.format(name, age)) print('我的名字是{0},年龄为{1},Tom的年龄为{1}'.format(name, age)) # 设置宽度为10: print('%10d' % 666) # 设置保留3位小数: print('%.3f' % 3.1415926) # 设置宽度为10,并保留3位小数: print('%10.3f' % 3.1415926) # 保留3位数: print('{0:.3}'.format(3.1415926)) # 保留3位小数: print('{0:.3f}'.format(3.1415926)) # 设置宽度为10,保留3位小数: print('{0:10.3f}'.format(3.1415926))
3️⃣ 使用 f-string 格式化字符串:f'我的名字是{name},年龄为{age}'
# 博主:辰chen # 博客地址:https://chen-ac.blog.csdn.net/ # 开发时间:2021/12/15 20:10 # 欢迎大家关注AIoT相关博客~ name = '辰chen' age = 19 print(f'我的名字是{name},年龄为{age}')
*4.5.6 字符串的编码转换
注:本小节带 *,不需要进行学习,可以简单进行了解
⛲️本文涉及的内容其实在爬虫上才会真正使用到,这里大家只需要进行简单的了解即可。
为什么要进行编码转换:其实我们在计算机与计算机交流的过程中,比如把我的计算机中的数据传入至你的计算机之中,就需要使用字节进行传输。这个时候就需要将我们的字符串转为二进制,然后你的电脑再将二进制转为字符串,最终呈现在你的眼前。编码是将字符串转为二进制数据(bytes),解码就是将二进制数据(bytes)转为字符串类型。注意我们得先进行编码再进行解码:
# 博主:辰chen # 博客地址:https://chen-ac.blog.csdn.net/ # 开发时间:2021/12/15 22:16 # 欢迎大家关注AIoT相关博客~ s='亦无风雨亦无晴' #编码 print(s.encode(encoding='GBK')) #在GBK这种编码格中 一个中文占两个字节 print(s.encode(encoding='UTF-8')) #在UTF-8这种编辑格式中,一个中文占三个字节 #解码 #byte代表就是一个二进制数据(字节类型的数据) byte=s.encode(encoding='GBK') #编码 print(byte.decode(encoding='GBK')) #解码 byte=s.encode(encoding='UTF-8') print(byte.decode(encoding='UTF-8'))
*4.5.7 字符串常用函数(方法)汇总
注:本小节带 *,不需要进行学习,可以简单进行了解
⛲️ 本小节可以说还是比较重要的,但为什么本小节打 * 了呢?这是因为我们没必要去记忆这些函数/方法(期末考试除外),在我们需要的时候我们只需要来本小节去查找用法即可
函数(方法) | 用法介绍 |
index() | 查找子串第一次出现的位置,如果不存在子串则显示ValueError |
rindex() | 查找子串最后一次出现的位置,如果子串不存在则显示ValueError |
find() | 查找子串第一次出现的位置,如果不存在子串则返回-1 |
rfind() | 查找子串最后一次出现的位置,如果不存在子串则返回-1 |
upper() | 将字符串中所有的字母都转为大写字母 |
lower() | 将字符串中所有的字母都转为小写字母 |
swapcase() | 将字符串中所有的大写字母转为小写字母,所有的小写字母转为大写字母 |
capitalize() | 把第一个字母转为大写字母,其他字母转为小写字母 |
title() | 把每一个单词的第一个字母转为大写字母,其他字母转为小写字母 |
center() | 居中对齐,第一个参数为宽度,第二个参数为填充符(默认为空) |
ljust() | 左对齐,第一个参数为宽度,第二个参数为填充符(默认为空) |
rjust() | 右对齐,第一个参数为宽度,第二个参数为填充符(默认为空) |
zfill() | 右对齐,只有一个参数:宽度,用 0 去填充 |
split() | 从字符串左边开始分割,默认分隔符为空格,可用 sep 指定分隔符,可用 maxsplit 指定最大分割次数 |
rsplit() | 从字符串右边开始分割,默认分隔符为空格,可用 sep 指定分隔符,可用 maxsplit 指定最大分割次数 |
isidentifier() | 判定字符串是否由合法标识符组成 |
isspace() | 判断字符串是否全部由空格字符组成(回车,换行,水平制表符) |
isalpha() | 判断字符串是否全部由字母组成 |
isdecimal() | 判断字符串是否全部由十进制的数字组成 |
isnumeric() | 判断字符串是否全部由数字组成 |
isalnum() | 判断字符串是否全部由字母和数字组成 |
replace() | 第一个参数为被替换的子串,第二个参数为替换子串的字符串,第三个参数为最大替换次数(默认全部替换) |
join() | 把列表和元组中的字符串合并成一个字符串,可设置字符串之间的连接符(默认无连接符) |
format() | 将字符串进行格式化 |