目录
一、掌握字符串的常用操作
字符串是python中的不可变数据类型
方法名 | 描述说明 |
---|---|
str.lower() | 将str字符串全部转成小写字母,结果为一个新的字符串 |
str.upper() | 将str字符串全部转成大写字母,结果为一个新的字符串 |
str.split(sep=None) | 将str按照指定的分隔符sep进行分隔,结果为列表类型 |
str.count(sub) | 结果为sub这个字符串在str中出现的次数 |
str.find(sub) | 查询sub这个字符串在str中是否存在,如果不存在结果为-1,如果存在,结果为sub首次出现的索引 |
str.index(sub) | 功能与find()相同,区别在于要查询的子串sub不存在时,程序报错 |
str.startswith(s) | 查询字符串str是否以子串s开头 |
str.endwith(s) | 查询字符串str是否以子串s结尾 |
# 大小写转换
t1='hello,Python'
new_t2=t1.lower()
print(new_t2)
new_t3=t1.upper()
print(new_t3)
# 字符串分隔
e_mail='gnafgnaf26@163.com'
lst=e_mail.split('@')
print('邮箱名:',lst[0],'邮件服务器域名:',lst[1])
t1='hello,Python'
print(t1.count('o'))
t1='hello,Python'
# 检索操作
print(t1.find('o')) # o 在字符串t1中首次出现的位置
print(t1.find('w')) # -1,没有找到
print(t1.index('o'))
print(t1.index('w')) #ValueError: substring not found
# 判断前缀和后缀
print('这里放一句话试试'.startswith('这'))
print('这里放一句话试试'.startswith('里'))
print('demo.py'.endswith('.py'))
print('text.txt'.endswith('.txt'))
方法名 | 描述说明 |
---|---|
str.replace(old.news) | 使用news替换字符串s中所有的old字符串,结果是一个新的字符串 |
str.center(width.fillchar) | 字符串str在指定的宽度范围内居中,可以使用fillchar进行填充 |
str.join(iter) | 在iter中的每个元素的后面都增加一个新的字符串str |
str.strip(chars) | 从字符串中去掉左侧和右侧chars中列出的字符串 |
str.lstrip(chars) | 从字符串中去掉左侧chars中列出的字符串 |
str.rstrip(chars) | 从字符串中去掉右侧chars中列出的字符串 |
t1='hello,Python'
# 字符串的替换
new_t2=t1.replace('hello','你好',1)
print(new_t2)
# 字符串在指定的宽度范围内居中
print(t1.center(20))
print(t1.center(20,'*'))
# 去掉字符串左右的空格
s=' hello world '
print(s.strip())
print(s.lstrip()) # 去除字符串左侧的空格
print(s.rstrip()) # 去除字符串右侧的空格
# 去掉指定的字符
s3='dl-helloworld'
print(s3.strip('ld')) # 与顺序无关
print(s3.lstrip('ld'))
print(s3.rstrip('dl'))
二、熟练格式化字符串的使用
a.格式化字符串的三种方式
占位符 | f-string | str.format()方法 |
---|---|---|
%s:字符串格式 | python3.6引入的格式化字符串方式,以{}标明被替换的字符 | 模版字符串.format(逗号分隔的参数) |
%d:十进制整数格式 | ||
%f:浮点数格式 |
# (1)使用占位符进行格式化
name='韩梅梅'
age=18
score=98
print('姓名:%s,年龄:%d,成绩%f'%(name,age,score))
print('姓名:%s,年龄:%d,成绩%.1f'%(name,age,score))
# (2) f-string
print(f'姓名:{name},年龄{age},成绩:{score}')
# (3)使用字符串的format方法
print('姓名:{0},年龄:{1},成绩:{2}'.format(name,age,score))
print('姓名:{2},年龄:{0},成绩:{1}'.format(name,age,score))
b.格式化字符串的详细格式
: | 填充 | 对齐方式 | 宽度 | , | .精度 | 类型 |
---|---|---|---|---|---|---|
引导符号 | 用于填充单个字符 | <左对齐 >右对齐 ^居中对齐 | 字符串的输出宽度 | 数字的千位分隔符 | 浮点数小数部分的精度或字符串的最大输出长度 | 整数类型:b\d\o\x\X 浮点数类型:e\E\f\% |
c.format的格式控制
# format格式控制
s='helloworld'
print('{0:*<20}'.format(s)) # 字符串的显示宽度为20,左对齐,空白部分使用*号填充
print('{0:*>20}'.format(s))
print('{0:*^20}'.format(s))
# 居中对齐
print(s.center(20,'*'))
# 千位分隔符(只适用于整数和浮点数)
print('{0:,}'.format(987654321))
print('{0:,}'.format(987654321.7894))
# 浮点数小数部分的精度
print('{0:.2f}'.format(3.1415926))
# 字符串类型.表示最大显示长度
print('{0:.5}'.format('helloworld'))
# 整数类型
a=425
print('二进制:{0:b},十进制:{0:d},八进制:{0:o},十六进制:{0:x}'.format(a))
# 浮点数类型
b=3.1415926
print('{0:.2f},{0:.2E},{0:.2e},{0:.2%}'.format(b))
三、掌握字符串的编码和解码
a.字符串的编码
将str类型转换成bytes类型,需要使用到字符串的encode()方法
语法格式:
str.encode(encoding='utf-8',
errors='strict/ignore/replace')
b.字符串解码
将bytes类型转换成str类型,需要使用到bytes类型的decode()方法
语法格式:
bytes.decode(encoding=‘utf-8’,
errors=‘strict/ignore/replace’)