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)
全世界的程序员们联合起来吧!