字符串操作
1.字符串的截取
str1 = 'abcdefg'n = len(str1)
s = str1[5]
s1 = str1[1:6:2]
s2 = str1[2:]
s3 = str1[:2]print(n)
print(s)
print(s1)
print(s2)
print(s3)
7
f
bdf
cdefg
ab
[Finished in 0.2s]
2.字符串检索
# 判断字串是否存在,子串出现位置和次数f1 = 'cd' in str1
f2 = 'cd' not in str1
n1 = str1.count('c')# 找不到返回-1
n2 = str1.find('c')# 找不到直接报异常
n3 = str1.index('c')print(f1)
print(f2)
print(n1)
print(n2)
print(n3)
3.字符串训练
name = '倔强-五月天.flac'a = name.find('-')
b = name.find('.')f = name[a+1:b]
s = name[:a]split1 = name[a]
last = name[b:]res = f+split1+s+last
print(res)# f = name[3:6]
# s = name[0:2]# split1 = name[2]# last = name[-5:]# res = f+split1+s+last
# print(res)
五月天-倔强.flac
[Finished in 0.2s]
4.字符串转换
# 完全拆解成列表
str1 = 'abcd'
L = list(str1)# 字符串.split(子串): 子串作为分隔符号,拆解成列表
L1 = 'a-b-c-d'.split('-')
L2 = 'a-b-c-d-'.split('-')# 字符串.join(列表): 使用字符串(可以为空)把列表拼接成一个字符串,
S1 = '_'.join(['1','2','3'])
S2 = '_'.join('abc')print(L)
print(L1)
print(L2)
print(S1)
print(S2)
[‘a’, ‘b’, ‘c’, ‘d’]
[‘a’, ‘b’, ‘c’, ‘d’]
[‘a’, ‘b’, ‘c’, ‘d’, ‘’]
1_2_3
a_b_c
[Finished in 0.2s]
S3 = 'AbcDE'.lower()
S4 = 'AbcDE'.upper()# 最后一个参数是替换个数,如果只有一个就换一个
S5 = 'abcdefg'.replace('ab','gg',2)
print(S3)
print(S4)
print(S5)
abcde
ABCDE
ggcdefg
[Finished in 0.2s]
5.题目训练
根据特殊性解
with open('出游名单.txt','r',encoding = 'utf-8') as fr:data = fr.read()rows = data.split('\n')res = []for row in rows:row =row.replace('female','女')row = row.replace('male','男')row =row.replace('a','A')row =row.replace('c','C')res.append(row+'\n')with open('出游名单2.txt','a',encoding='utf-8') as fa:fa.writelines(res)
正常解
with open('出游名单.txt','r',encoding = 'utf-8') as fr:data = fr.read()rows = data.split('\n')res = []rows = rows[:-2]for row in rows:list_row = row.split(',')list_row[-1] = list_row[-1].upper()if list_row[1] == 'female':list_row[1] = '女'else:list_row[1] = '男'res.append(','.join(list_row)+'\n')with open('出游名单2.txt','a',encoding='utf-8') as fa:fa.writelines(res)
6.判断字符串中含有字母或着数字或者中文
第一种,直接用a-z A-Z 0-9判断
s = '中abcDD123$$文'
zm = 0
sz = 0
qt = 0
for c in s:if 'a'<=c<='z' or 'A'<=c<='Z':zm += 1elif '0'<=c<='9':sz += 1else:qt += 1
print(zm)
print(sz)
print(qt)
第二种,直接利用API
for c in s:if c.encode().isalpha():zm += 1elif c.isdigit():sz += 1else:qt += 1print(zm)
print(sz)
print(qt)