写一个函数,实现遍历一个数字和字母参杂的字符串,如果碰到字母则替换成*,最后*隔开的数字作为整体计算求和。 如”ab34aa243dd78eww89”,则替换成*的结果为:”**34**243*...

方法一:

s= "ab34aa243dd78eww89"

result =""

count =0

flag=False

for i in s:

    if i>='a' and i<="z":

        if flag=True:

            result+=str(count)

            flag=False

            count=0

        result+="*"

    else:

        flag=True

        count+=int(i)

if count !=0:

    result+=str(count)

print (result)

方法二:

# encoding = UTF-8

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)

方法3:

def get_data(data):

    result=""

    for i in data:

        if i.isalpha():

            result+="*"

        else:

            result+=i

    return result

def get_sum(num):

    result=""

    temp=num.split("*")

    for i in temp:

        sum1=0

        if len(i)==0:

            result+="*"

        elif len(i)==1:

            result+=i

        else:

            for j in i:

                sum1+=int(j)

            result+=str(sum1)

    return result

if __name__=="__main__":

    data1="ab34aa243dd78eww89"

    result1=get_data(data1)

print(get_sum(result1))

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容