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

yipeiwu_com6年前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设计】。

相关文章

python通过socket实现多个连接并实现ssh功能详解

python通过socket实现多个连接并实现ssh功能详解

一、前言   上一篇中我们已经知道了客户端通过socket来连接服务端,进行了一次数据传输,那如何实现客户端多次发生数据?而服务端接受多个客户端呢? 二、发送中文信息   在python...

Python 实现取多维数组第n维的前几位

Python 实现取多维数组第n维的前几位

现在我们有一个shape为(7352, 9, 128, 1)的numpy数组。 想要取出第2维的前三个数据,构成新数组(7352, 3, 128, 1) 我的思想是:将第2维数据转置(t...

Python ldap实现登录实例代码

下面一段代码是小编给大家介绍的Python ldap实现登录实例代码,一起看看吧 ldap_config = { 'ldap_path': 'ldap://xx.xx.xx.xx...

Python OpenCV之图片缩放的实现(cv2.resize)

Python OpenCV之图片缩放的实现(cv2.resize)

OpenCV函数原型: cv2.resize(InputArray src, OutputArray dst, Size, fx, fy, interpolation) 参数解释:...

Python API 自动化实战详解(纯代码)

Python API 自动化实战详解(纯代码)

主要讲如何在公司利用Python 搞API自动化。 1.分层设计思路 dataPool :数据池层,里面有我们需要的各种数据,包括一些公共数据等 config :基础配置 tools :...