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