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)

 
































posted @ 2018-06-19 21:21  年轻人——001  阅读(1861)  评论(0编辑  收藏  举报