字符串操作

发布于:2025-07-28 ⋅ 阅读:(15) ⋅ 点赞:(0)

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 += 1
	elif '0'<=c<='9':
		sz += 1
	else:
		qt += 1
print(zm)
print(sz)
print(qt)

第二种,直接利用API

for c in s:
	if c.encode().isalpha():
		zm += 1
	elif c.isdigit():
		sz += 1
	else:
		qt += 1

print(zm)
print(sz)
print(qt)

网站公告

今日签到

点亮在社区的每一天
去签到