工程师们大家好,配套免费视频 平时上班周末录制
文章目录
字符串
1.下标
先认识字符串的下标,也就是每个字符占第几位
在计算机语言中,下标都是以0开始的。
比如:str=‘abcde’
print(str[0]) 就是打印a
0---a
1---b
2---c
....
2.切片操作
str = '天青色等烟雨而我在等你'
str1 = str[2:6] # 下标2-5 不包含6 结果:色等烟雨
print(str1)
str2 = str[2:] # 截取2-末尾 结果:色等烟雨而我在等你
print(str2)
str3 = str[:8] # 截取0-8的位置 不包含8
print(str3)
str4 = str[:-1] # -1表示倒数第一位 但是不含倒数第一位 天青色等烟雨而我在等
print(str4)
str5 = str[::2] # 前面表示0到最后以为 后面2表示下标加多少 也就是会取0 2 4 ....
print(str5) # 结果:天色烟而在你
str6 = str[::-2] # 表示反过来取 比如最后一位下标是10那么就是 10 8 6 4 2 0
print(str6)
str7 = str[-4:10] # -4表示从后面数 注意是从-1开始
print(str7) # 结果:我在等 表示倒数第四位到下标为正9的位置 不包含10
3.字符串查找
两类函数:
find(),rfind()
index(),rindex()
找到了都返回下标.
find找不到返回-1,index找不到抛出ValueError.
带r的表示从右向左找.
str = '天青色等烟雨而我在等你'
find = str.find("等") # 从下标为0开始查找 找到第一个等下标为3
print(find)
rfind = str.rfind('等') # 从右侧开始查找 找到第二个等 下标为9
print(rfind)
str_find = str.find('等', 4) # 表示从下标为4到最后所有的查找等 下标为9 跳过了第三个
print(str_find)
i = str.find('雨', -4) # 表示从后面倒数第四个---最后 查找雨 最后四个是我在等你 返回-1
print(i)
find1 = str.find('烟雨', 0, 10) # 从0-9里面查找 不包含10 返回烟所在的下标4
print(find1)
# index跟find相同 rindex跟rfind相同
# find找不到返回-1 index报错
4.字符串统计count
str = '天青色等烟雨而我在等你'
print(str.count('等')) # 出现了两次就是2
5.replace
字符串替换
字符串序列.replace(旧⼦串, 新⼦串, 替换次数)
str = '天青色等烟雨而我在等你'
str1 = str.replace('等', '哈') # 替换所有的等为哈
print(str1)
str2 = str.replace('等', '哈', 1) # 就替换第一个等
print(str2)
str3 = str.replace('等', '哈', 5) # 等出现2次 5>2所以替换所有的
print(str3)
print(str) # 无论怎么操作str 不会表
str = 'abc'
print(str) # 其实会变 上面故意那么说为了加深印象
# 不会表的是字符串 注意 str只是一个变量而已
# str = '天青色等烟雨而我在等你'
# '天青色等烟雨而我在等你'才是字符串 然后把这个字符串在内存中的地址在给了str
# 所以打印str能看到字符串 str只是字符串的代表
# 然后执行str='abc'也就是让str去代表了abc 把abc这个字符串的地址给了str
# 所以str打印是abc 但是原来的'天青色等烟雨而我在等你' 还是原来的字符串
# 如果不懂 后续我们学习垃圾回收 内存机制会详解
6.split分割
str = '天青色\t等烟雨 而我在\n等你'
split = str.split() # 默认按空格 \t \n分割
# 相当于把一个字符串分成很多部分,所以分割后是一个集合(下面的章节会详细学习)
# 结果:['天青色', '等烟雨', '而我在', '等你']
print(split)
str2 = '天青色等烟雨而我在等你'
# 按照等字分割 等将会消失
str_split = str2.split('等')
# 结果:['天青色', '烟雨而我在', '你']
print(str_split)
# 按照等分割 但是只分割一个
str__split = str2.split('等', 1)
# 结果:['天青色', '烟雨而我在等你']
print(str__split)
# 如果分割字符是原有字符串中的⼦串,分割后则丢失该⼦串
7.join
list = ['说','重','点']
# 将集合的元素组装成一个字符串,每个元素用空相连接
join = ''.join(list)
# 结果:说重点
print(join)
# 字符串类型
print(type(join))
# 将集合的元素组装成一个字符串,每个元素用-相连接
s = '-'.join(list)
# 结果:说-重-点
print(s)
8.capitalize
str = 'my Name is ZhongdianShuo'
capitalize = str.capitalize()
# My name is zhongdianshuo 注意只有第一个字母大写了 其它小写了
print(capitalize)
9.title
str = 'my name is zhongdianShuo'
title = str.title()
# My Name Is Zhongdianshuo 每一个单词首字母都大写了
print(title)
10.lower/upper
str = 'JUNGE'
# 将字符串变为小写
lower = str.lower()
print(lower) # 结果: junge
# 将小写字符串变为大写
upper = lower.upper()
print(upper) # 结果: JUNGE
11.strip
strip:删除字符串前后空格
lstrip:l是left的缩写 删除左边空格
rstrip:r是right的缩写 删除右边空格
str = '\t aacca说重点bbbcc \n'
# 去除右边空格 \t 以及\n
rstrip = str.rstrip()
# 结果: aacca说重点bbbcc 注意前面有空格
print(rstrip)
# 去掉左边空格
lstrip = rstrip.lstrip()
print(lstrip)
# aacca说重点bbbcc
strip = lstrip.strip("ac")
# 结果说重点bbb
print(strip)
# 首先遍历ac得到a 拿着a去strip里面去除得到---cca说重点bbbcc
# 再拿着c去去除得到新字符串-----a说重点bbb
# 再循环ac去 去除得到新字符串----- 说重点bbb
# 再循环ac去去除 没有了 就结束了
# 也就是目标字符串lstrip首尾字符都不在ac中才算结束
12.ljust/rjust/zfill/center
str = '说重点'
# l是left的意思 表示原字符串放在左边 剩下不够的用空格填充
ljust = str.ljust(10)
# 输出'说重点 ' 不够10个空格填充
print(ljust)
# 填充小于原字符串长度 展示原字符串
str_ljust = str.ljust(2)
print(str_ljust)
# 用*号填充
s = str.ljust(10, '*')
print(s)
# 原字符串居中
center = str.center(10, '*')
print(center)
# 原字符串居右
print(str.rjust(10, '*'))
# 0000000说重点 默认用0填充
print(str.zfill(10))
13.stratswith/endswith
str = 'public static void main'
print(str.endswith('main')) # true 以main结尾
print(str.endswith('')) # true
print(str.endswith('main', 3)) # true表示str字符串下标为3到最后 还是以main结尾
print(str.endswith('mian', 3, 20)) # false因为 只判断了3-20的部分字符串是否以main结尾
# startswith类似
14.isalpha()
1.字符串不为’’
2.所有字符都是字⺟
两个条件同时满足返回true 否则返回false
str1 = ''
str3 = 'abc'
str4 = 'abc123'
print(str1.isalpha()) # False
print(str3.isalpha()) # True
print(str4.isalpha()) # False
15.isdigit()
1.字符串不为’’
2.字符串都是数字
两个条件同时满足返回true 否则返回false
str1 = ''
str3 = '123'
str4 = 'abc123'
print(str1.isdigit()) # False
print(str3.isdigit()) # True
print(str4.isdigit()) # False
16.isalnum()
1.字符串不为’’
2.所有字符都是字⺟或数字
两个条件同时满足返回true 否则返回false
str1 = ''
str3 = '123'
str4 = 'abc123'
print(str1.isalnum()) # False
print(str3.isalnum()) # True
print(str4.isalnum()) # True
17.isspace()
1.字符串只包含’’ 空格
str1 = ' '
str2 = '\t'
str3 = '\n'
str4 = '123'
str5 = 'abc123'
str6 = ''
print(str1.isspace()) # True
print(str2.isspace()) # True
print(str3.isspace()) # True
print(str4.isspace()) # False
print(str5.isspace()) # False
print(str6.isspace()) # False
常用的就这些,还有其他str的方法 遇到了在说