因工作原因,很久没有学习python知识了,感觉都快忘记了,前天看到一个练习题,如何将字符串中的数字提取出来,然后求和呢?下面我来解释一下如何通过python代码来实现。

题目:字符串43…3y2.f67se2.666. 将其中的所有数字提取出来然后求和

思考:

1、字符串中包含了字母和数字和小数点,怎么取出来比较呢?

2、小数点连续有很多个的时候怎么处理?

3、最后取出来的数该怎么求和?

4、最后一个是小数点该怎么办?

解题思路:

1、首先通过循环遍历去将字符串中的数字取出来

2、去判断取出来的数是数字还是字母还是小数点

3、多个小数点的数要去掉

4.取出来结果是 43 3 2 67 2.666

源代码实现过程:str= "43...3y2.f67se2.666. "

sum = 0

number = ""

is_num ="0123456789" #定义是否是数字

is_has_float = False #定义是否是小数点

isstart = False #定义是否是数字开始的标记变量

for a in str: #将数字循环遍历

if a in is_num: #判断取出来的数字是否是数字

if isstart==True:

number = number+a

else:

number = number+a

isstart=True

continue

if a=='.': #判断取出来的数字是否是小数点

if isstart==True: #判断前一个是否是数字

if is_has_float == True:

pass

else:

is_has_float = True

number = number+a

continue

if isstart == True: #当一个数字遍历完了,就要求和,现在取出的数字格式的字符串,不是整形,所以6+7 = 67

print(number.strip('.')) #strip去掉最后一个小数点

sum = sum+float(number.strip('.'))

#前一个数字取完了之后,初始化,

number = ""

isstart = False

is_has_float = False

if isstart == True: #判断结尾是否是数字

print(number.strip("."))

sum = sum+float(number.strip("."))

print(sum)

大致的流程是这样的:

先定义好空的对象,用于存放取出来的数字,和是否是数字和小数点,然后在通过取出来的数字进入循环里面判断属于什么,比如第一个,取出来是4,第9行,判断4是不是属于定义的数字里面的值,属于就进去第一个if里面,在去判断number这个对象里面的值首个字母是不是数字,因为刚开始是空的,所以程序会到13行,最后将4添加进number里面,第二次遍历,取3,3是数字,进9行,然后第10行是判断number里面的值是不是数字,是,就添加进去,然后number就变成43了,这里说下字符串相加是拼接在一起的不是整形,第三个遍历添加的取的是小数点,进去小数点的判断里面,也就是16行,然后也是判断number值第一个是不是数字,是就进入18行,18行的判断是判断number里面有没有小数点,有就结束,没有就添加进去。

所以现在number变成43.了,然后继续遍历第4个,也是小数点,这时候就会进去18行,已经存在小数点了,pass结束,小数点后面肯定是接数字不是其他字符的,就是1.2啊这些 不会是1..2这样,所以程序会进24行,判断第一个是不是数字,然后去掉这个数字最后一个小数点,然后添加进去,重置初始化。

等于是刚才number是43..了,但这是不对的,所以去掉最后一个小数点就是43.了。但求和的时候用了浮点型转换,所以就会默认补0,变成43.0,后面因为取出的第4位是小数点,43..组不成一个正常的数字了,除非第四个继续是数字就可以继续添加,说明之前一个数已经取完了,所以要重置初始化,然后依次继续取后面的数字。最后求和。

当取出来是字母的时候,不属于判断里面的任意一个,这个时候会被直接过滤掉。

其实不难,但要心细,考虑到多种场景

补充知识:python实现计算字符串中的整数的总和

题目描述:随便输入一串字符串

例如:

输入:‘ad23dsf34#’

目的:计算 23+34 的和

输出:

57'''

@destination 计算字符串中整数的和

method:将字符串中的字母同意替换成一个字符然后分隔就可以得到整数

这里面用到的isdigit函数是判断字符串是否是数字

'''

def cacul(a):

sum=0#用来存放总和

c=[]

for i in a:

if i.isdigit()==False:

c.append(i)

for i in c:

a=a.replace(i,',')

a=a.split(',')

print(a)

for i in a:

if i.isdigit()==True:

sum=sum+int(i)

return sum

a='1a2b3c4d5f6g'

print(cacul(a))

运行结果为:

以上这篇python实现将字符串中的数字提取出来然后求和就是小编分享给大家的全部内容了,希望能给大家一个参考。

python对excel筛选提取文本中数字_python实现将字符串中的数字提取出来然后求和...相关推荐

  1. python输出用逗号隔开的数字_Python:从字符串中提取带有点和逗号的数字

    我正在分析Python中的单词和数字.我只对数字感兴趣,即只对0到9.点(.)和逗号(,)感兴趣.我对保留点和逗号很感兴趣,因为有些文件是用美式数字(即3.14159)编写的,而有些文件是用欧洲(德语 ...

  2. python正则匹配字符串中的数字_Python正则表达式匹配字符串中的数字

    1.使用"\d+"匹配全数字 代码: import re zen = "Arizona 479, 501, 870. Carlifornia 209, 213, 650. ...

  3. python正则匹配11个数字_Python正则表达式匹配字符串中的数字

    导读 这篇文章主要介绍了Python正则表达式匹配字符串中的数字,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下 1.使用"\d+"匹配全数字 ...

  4. php 删除字符串中链接_python面试——删除字符串中的“b”和“ac”,删除后无b和ac(CloudIn(云英)面经)...

    原文出处:https://blog.csdn.net/weixin_42521211/article/details/87930525# 删除字符串中的"b"和"ac&q ...

  5. python正则取字符串日期_python 正则表达式获取字符串中所有的日期和时间

    提取日期前的处理 1.处理文本数据的日期格式统一化 text = "2015年8月31日,衢州元立金属制品有限公司仓储公司(以下简称元立仓储公司)成品仓库发生一起物体打击事故,造成直接经济损 ...

  6. python获取月份字符串_python 正则表达式获取字符串中所有的日期和时间

    提取日期前的处理 1.处理文本数据的日期格式统一化 text = "2015年8月31日,衢州元立金属制品有限公司仓储公司(以下简称元立仓储公司)成品仓库发生一起物体打击事故,造成直接经济损 ...

  7. python正则表达式提取数字比较好_python正则表达式从字符串中提取数字的思路详解...

    python从字符串中提取数字 使用正则表达式,用法如下: ## 总结 ## ^ 匹配字符串的开始. ## $ 匹配字符串的结尾. ## \b 匹配一个单词的边界. ## \d 匹配任意数字. ## ...

  8. python读word文档doc公文标题_python – 从word doc中提取标题文本

    我试图从MS Word文档(.docx文件)中的标题(任何级别)中提取文本.目前我正在尝试使用python-docx来解决,但不幸的是我仍然无法弄清楚它是否在阅读之后是否可行(也许我错了). 我试图在 ...

  9. python字符串提取数字并求和_python实现将字符串中的数字提取出来然后求和

    因工作原因,很久没有学习python知识了,感觉都快忘记了,前天看到一个练习题,如何将字符串中的数字提取出来,然后求和呢?下面我来解释一下如何通过python代码来实现. 题目:字符串43...3y2 ...

最新文章

  1. C# 的三种序列化方法
  2. XML(eXtensible Markup Language)文件的解析
  3. 收藏!机器学习算法分类图谱及其优缺点综合分析
  4. UVa11039 Building designing(贪心算法)
  5. shell 后台执行脚本
  6. cocos2d 屏幕適配_Cocos2d-x 3.1 一步步做屏幕适配
  7. Mac下配置iterm2 支持rz sz命令
  8. 如何在IE浏览器播放RTSP或RTMP流
  9. Zabbix---1 监控主机磁盘空间
  10. JavaScript流程分支结构(1)
  11. Mysql 语法执行顺序
  12. 解除 网课失去焦点/离开页面 就自动暂停 的限制
  13. 推荐mac os 下更改键盘映射软件KeyRemap4MacBook
  14. 【路径规划】基于粒子群算法求解带时间窗的车辆路径规划问题VRPTW模型matlab源码
  15. 如何使用Node.js来制作电子音乐-和弦
  16. 计算机网络体系结构及其简单通信
  17. 如何给厂区做导航地图?智能工厂导航地图解决方案公司
  18. java 环境变量 locale_locale的设定及其LANG、LC_ALL、LANGUAGE环境变量的区别
  19. 高一c语言期末试题,江苏省海安高中2020-2021学年高一上学期期中考试信息技术试题 Word版含答案...
  20. 文件下载管理 全套方案

热门文章

  1. 串口通信——发送和接收数据(8位和16位数据之间的转换)
  2. html简介_HTML:简介
  3. String数组初始化
  4. 以太坊漏洞分析————10、区块参数依赖
  5. HashMap面试,看这一篇就够了
  6. 行业的英语术语大全之化妆品
  7. JAVA基础开发面试
  8. 湖中剑 前端周刊 #12 | React Router 6、依赖锁定、React Hooks指南、海王 Next.js、AppToolkit效率工具
  9. axture动画原型制作_5个方法让你入门 Figma 了解APP动画制作
  10. 大数据——装机教程之使用VM安装Linux虚拟机