python练习题之计算字符串中所有字符得和

时间:2023-03-09 05:02:04
python练习题之计算字符串中所有字符得和
第二题:计算字符串中所有数字的和
1.字符串中只有小写字母和数字
2.数字可能连续,也可能不连续
3.连续数字要当做一个数处s='1234adg3g11's1 = ""
for i in s :
if i.isdigit():
s1=s1+i
else:
s1=s1+" "
lt = s1.split(" ")
m= 0
for a in lt :
if a.isdigit():
m=m+int(a)
print(m)

*解决思想:把字符串中得数字调出来,用if else将数字和其他字符分隔开,并且将其他字符格式化,统一化,为下一步得分割做好准备。没做出来得原因对遍历对split()函数返回一个列表

第二种解决方案,用字符串得replace替换函数解决。总体思想和上一个一样。
def sum_of_num(s):
for x in s :
if not x.isdigit :
s=s.replace(x," ")
lt = s.split("")
a = o
for i in lt :
if i.isdigit :
a=a+int(i)
return a
第三种解决思想,是遍历字符串,判断是字母得话,变成数字,然后继续判断下一个元素是否为数字。不是数字得话,直接把刚才得整数加上。
num,num1=0,0
for i in s :
if i.isdigit():
num= num*10+int(i) #重要一步,将连续的数字直接转换成整数
else:
num1=num1+num
num = 0 #将刚才的整数变量清零。
num1=num1+num
print(num1)