练习1:
写一个函数,实现遍历一个数字和字母掺杂的字符串,如果碰到字母则替换成*,最后隔开的数字作为整体计算求和。如"ab34aa243dd78eww89",则替换成的结果为:“342437889",求和结果为:"7915**17”
s = "ab34aa243dd78eww89"
result = ""
count = 0
for i in s:
if i>='a' and i<='z':
result+="*"
else:
result+=i
print(result)
result = result.replace("*"," ")
for i in result.split():
count+=int(i)
print(count)
import re
s = "ab34aa243dd78eww89"
result = ""
s=re.sub(r"[a-z]","*",s)
arr1=re.split("\\*+",s) #['', '34', '243', '78', '89']
for i in range(len(arr1)):
count=0
if arr1[i].isdigit():
for j in arr1[i]:
count+=int(j)
if count!=0:
arr1[i]=str(count)
arr2=re.split("\\d+",s) #['**', '**', '**', '***', '']
for i in range(len(arr1)):
result+=arr1[i]+arr2[i]
print(result)
练习2:
一个字符串 i am learning,请按照如下规则转换为数字
abcd-5,efgh-10,ijkl-15,mnop-20,qrst-25,uvwx-30,yz-35
转换正确结果为:15 520 1510 52520152010
rule="abcd-5,efgh-10,ijkl-15,mnop-20,qrst-25,uvwx-30,yz-35"
rule=rule.split(",")
s="i am learning"
result=""
for i in s:
for r in rule:
if i in r:
result+=r.split("-")[1]
break
else:
result+=i
print(result)
练习3:
从控制台输入一串字母,判断是否是连续相同字母,是则输出True,否则输出Flase。
def judge_str():
s=input("请输入一串字符串:")
if s[0]*len(s)==s and ((s[0]>='a' and s[0]<='z') or (s[0]>='A' and s[0]<='Z')):
return True
else:
return False
judge_str()