Python学习笔记(七)字符串操作

一、数据类型转换

%s 字符串

%d 数值整数

%f 浮点数

format f表达式 挖坑填坑法则

1 name = '张三'
2 age = 18
3 height = 180.5
4 
5 print('我的名字是%s' % name)
6 print('我今年%d岁' % age)
7 print('我身高是%.2f' % height)
8 print('我叫{},我今年{}岁,我的身高是{}'.format(name, age, height))
9 print(f'我叫{name},我今年{age}岁,我的身高是{height}')

二、获取字符串中的数据

1.索引

1 brother = 'hello python'
2 print(brother)
3 # 查找p
4 # 从左边开始索引从0开始
5 # 从右边开始索引从-1开始
6 print(brother[6])
7 print(brother[-6])
1 # 扩展:enumerate 函数
2 brother = 'hello python'
3 for index, i in enumerate(brother):
4     print(index, i)

 

2.字符串中的切片

语法:name[start,end,step]

start 起始值 默认为0

end 终止值 不包含自身,左闭右开

step 步长 默认为1

 1 name = 'hellopython'
 2 print(name[2:5])  # 从2开始,到5结束(不包含5)
 3 print(name[2: 5: 1])  # 从2开始,到5结束,步长为1(不包含5)
 4 print(name[:5])  # 从0开始,到5结束(不包含5)
 5 print(name[1:])  # 从1开始,一直到结束
 6 print(name[:])  # 拿取所有
 7 print(name[::2])  # 从0开始,步长为2,拿取所有
 8 print(name[:-1])  # 从0开始,到最后一个数结束(-1代表最后一个数,不包含自身)
 9 print(name[-4:-1])  # 从倒数第四个数开始,到倒数第一个结束(不包含-1本身)
10 print(name[::-1])  # 从-1开始,倒着打印字符串,步长为1 逆序
11 print(name[::-2])  # 从-1开始,倒着打印字符串,步长为2 逆序
12 
13 # 注意:起始值到终止值与步长的方向必须一致
14 print(name[-1:-4:-1])
15 print(name[6:2:-2])

 

三、字符串常见操作方法

替换、复制、连接、比较、查找、大小写转换、分割、判断等

重点:替换、连接、查找、分割、判断

1.查找:查找字串在字符串中出现的位置或出现的次数

find() 检测某个字符串是否包含在这个字符串中,如果在,返回这个字符串开始的位置下标,否则返回-1

语法:find(sub,start,end)

sub 要查找的字串

start 起始位置 默认开头

end 终止位置 默认结尾

1 name = 'hello and python and hello world'
2 print(name.find('and'))
3 print(name.find('and', 8, 20))

index() 检测某个字符串是否包含在这个字符串中,如果在,返回这个字符串开始的位置下标,否则报错

语法:index(sub,start,end)

sub 要查找的字串

start 起始位置 默认开头

end 终止位置 默认结尾

1 name = 'hello and python and hello world'
2 print(name.index('ands'))  # index找不到就会报错
3 print(name.index('and', 8, 20))

count() 返回某个字串在字符串中出现的次数,只能找一层

1 li = [1, 2, 3, 4, 5, 6, 6, 6, 7, 8, 9, [6, 6, 6, 6, 6, ]]
2 print(li.count(6))
3 print(li[-1].count(6))

 

2.修改:对字符串当中的内容进行修改

replace(old,new,count) 进行替换的过程中并不会改变原来的字符串 而是会返回一个副本 重新赋值打印即可

old 老的

new 新的

count 次数 不指定count 全部替换

1 # 注意:字符串是不可变数据类型
2 name = 'hello and python and hello world'
3 new_name = name.replace('and', '', 3)
4 print(name.replace('and', '', 1))
5 print(new_name)

3.分割

split(self,sep,maxsplit)

sep 分隔符 默认是空格

maxsplit 最大的分割次数 分割3次实际上是生成了4个元素

1 # 分割后的数据类型会变成列表
2 name = 'hello and python and hello world'
3 li_name = name.split(' ', maxsplit=3)
4 li_name = name.split()
5 print(li_name)

4.连接

join() 字符串与字符串之间的连接

'sep'.join(iterable)

sep 分隔符,可以为空

iterable 可迭代对象,要连接的元素序列、字符串、元组、字典

如果说一个对象能够用for循环遍历 那么他就是可迭代对象

1 name = 'hello and python and hello world'
2 list1 = ['hello', 'python', 'i', 'love', 'you']
3 list2 = [1, 2, 3, 4, 5]  # 列表中的元素并不是字符串,无法连接
4 print('__'.join(list1))  # 将列表转换为字符串,并且使用指定符号隔开

5.删除

strip() 只能删除左右两边的符号 不能删除中间的

1 name = '@hello and @@python and hello world@@@'
2 print(name.strip())  # 默认删除两侧空格
3 print(name.strip('@'))
4 print(name.replace('@', ''))

6.判断

isalpha() 如果字符串至少有一个字符并且所有字符都是字母则返回 True,否则返回 False

isdigit() 如果字符串只包含数字则返回 True 否则返回 False

isalnum() 如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False

isspace() 如果字符串中只包含空格,则返回 True,否则返回 False

其他方法:

startswith() 方法用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False。如果参数 beg 和 end 指定值,则在指定范围内检查,语法:str.startswith(str, beg=0,end=len(string))

endswith() 方法用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回True,否则返回False。可选参数"start"与"end"为检索字符串的开始与结束位置,语法:str.endswith(suffix[, start[, end]])

capitalize() 将字符串的第一个字母变成大写,其他字母变小写。对于 8 位字节编码需要根据本地环境,语法:str.capitalize()

title() 方法返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())

upper() 方法将字符串中的小写字母转为大写字母

lower() 方法转换字符串中所有大写字符为小写

ljust() 方法返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串,语法:str.upper()

rjust() 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串

center() 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串。默认填充字符为空格

7.拼接

1 a = 'hello'
2 b = 'baby'
3 print(a + b)  # 字符串运算 叫拼接

8.转义

# r转义
print('告诉老默\n我想吃鱼了!')
print(r'告诉老默\n我想吃鱼了!')  # 会将转义字符取消 让其成为一个普通字符

print('\\')  # \特殊字符
print(r'\\')

 

posted @ 2023-03-05 21:43  梵星语  阅读(88)  评论(0)    收藏  举报