python 将字符串中的数字相加求和的实现

yipeiwu_com5年前Python基础

计算字符串中所有数字的和,字符串中有数字和字母组合而成

如果出现连续数字,按照一个数操作

具体解释在代码行里:

def sum_str(str1):
  len1=len(str1)   #首先将字符串str1的长度赋值给len1
  sum = n = 0      #建立一个值为0的空变量sun     #建立一个值为0的空变量n
  for i in range(len1):        #用i来遍历字符串的长度
    if 49 <= ord(str1[i]) <= 57:  #判断字符ascii码是否在数字ascii值范围内
      n = n * 10     #n *= 10
      n = int(str1[i]) + n  #n += int(str1[i])
    else:
      sum = n + sum  #sum += n
      n = 0
    # 上面6行代码的意思是从0下标开始,遍历字符串,如果是数字,用n加上其数字,
    #执行逻辑是,碰见一个数字,用n加上,如果下一个还是数字,就将上一个数字乘10加这个数字,依次循环
    #比如:连续数字df123asd = ((1*10+2)*10)+3
    #如果不是数字,就将n值加到变量sum中,保存,并且将n重新赋值为0,再次进入for循环,(sun只在碰见字母的时候出现,把数字之前的数字的值收集起来)
    # 下次再碰到数字(满足if条件),循环(if)条件下面的逻辑
  sum = n +sum
  print(sum)
str1 = "b532x2x3c4b5"
sum_str(str1)   #调用函数

运行结果:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

利用django如何解析用户上传的excel文件

前言 我们在工作中的时候,会有这种需求:用户上传一个格式固定excel表格到网站上,然后程序负债解析内容并进行处理。我最近在工作中就遇到了,所以想着将解决的过程总结分享出来,方便大家参考...

python实现将一个数组逆序输出的方法

方法一: def printTheReverseArray(self): list_1 = [1, 2, 3, 4, 5, 6, 7] length = len(list_1...

介绍Python的Django框架中的QuerySets

 Django的QuerySets酷毙了! 在本文中我将解释一下QuerySets是什么,它是如何工作的(如果你对它已经熟悉了,你可以直接跳到第二部分),我认为如果可以的话你应...

python网络编程之文件下载实例分析

本文实例讲述了python网络编程之文件下载实现方法。分享给大家供大家参考。具体如下: 真是越看越喜欢python啊,想要了解它提供的http和ftp下载功能,原来是如此的简单。 1、相...

用Python进行行为驱动开发的入门教程

用Python进行行为驱动开发的入门教程

为驱动开发(Behavior-Driven Development,BDD)是一种卓越的开发模式。能帮助开发者养成日清日结的好习惯,从而避免甚至杜绝“最后一分钟”的情况出现,因此对提高代...