有两种
一种是这样的
'''
计算字符串中所有数字的和
1.字符串中只有小写字母和数字
2.数字可能连续,也可能不连续
3.连续数字要当做一个数处理
如:'12abc34dc5' => 12 + 34 + 5 => 51
'''
def str_sum(str1):
lenght = len(str1)
num = 0
sum = 0
for i in range(lenght):
if str1[i].isdigit():
num += 1
if str1[i - num ].islower():
continue
if str1[i].islower():
sum += int(str1[i-num:i])
num = 0
#上面的代码没有计算字符串末尾出现的数字
#这一步非常重要,加上字符串末尾出现的数字
if str1[-1].isdigit():
sum+=int(str1[lenght-num:lenght])
return sum
a = '1000asd100asd10asd1'
print(str_sum(a))
第二种
只计算单个数字的和
def str_sum(str1):
num = []
sum = 0
for i in str1:
if i.isdigit():
num.append(i)
for j in num:
sum += int(j)
print(sum)
a = 'd15asdsa455'
str_sum(a)