第二題:計算字符串中所有數字的和
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)