详见第二篇文章
这个函数遍历字符串,使用一个标志 found_digit 来跟踪当前字符是否为数字。如果找到一个数字字符,它会将该字符转换为整数并加到 current_number 中。每次遇到非数字字符时,如果 found_digit 为真,它会将 current_number 加到总和中,并重置 current_number。最后,函数返回累加的总和。
def sum_of_numbers_in_string(s): total = 0 current_number = 0 found_digit = False
for char in s: if '0' <= char <= '9': # 判断字符是否为数字 found_digit = True current_number = current_number * 10 + int(char) # 构建当前数字 elif found_digit: # 非数字字符出现,意味着一个整数的结束 total += current_number current_number = 0 found_digit = False
# 检查字符串末尾是否有整数 if found_digit: total += current_number
return total
# 测试函数print(sum_of_numbers_in_string("c5f16")) # 应该输出 21
领取专属 10元无门槛券
私享最新 技术干货