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


Posted in Python onApril 02, 2020

因工作原因,很久没有学习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实现将字符串中的数字提取出来然后求和就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python2.5/2.6实用教程 入门基础篇
Nov 29 Python
Python随手笔记第一篇(2)之初识列表和元组
Jan 23 Python
python基于ID3思想的决策树
Jan 03 Python
将字典转换为DataFrame并进行频次统计的方法
Apr 08 Python
使用pandas对两个dataframe进行join的实例
Jun 08 Python
解决Python 使用h5py加载文件,看不到keys()的问题
Feb 08 Python
解决Pycharm后台indexing导致不能run的问题
Jun 27 Python
解决Atom安装Hydrogen无法运行python3的问题
Aug 28 Python
python BlockingScheduler定时任务及其他方式的实现
Sep 19 Python
Python 正则表达式爬虫使用案例解析
Sep 23 Python
在Django中预防CSRF攻击的操作
Mar 13 Python
Python matplotlib多个子图绘制整合
Apr 13 Python
python对指定字符串逆序的6种方法(小结)
Apr 02 #Python
在python中实现求输出1-3+5-7+9-......101的和
Apr 02 #Python
django中url映射规则和服务端响应顺序的实现
Apr 02 #Python
Python实现从N个数中找到最大的K个数
Apr 02 #Python
Python任务调度利器之APScheduler详解
Apr 02 #Python
PyQt使用QPropertyAnimation开发简单动画
Apr 02 #Python
python topk()函数求最大和最小值实例
Apr 02 #Python
You might like
怎样给PHP源代码加密?PHP二进制加密与解密的解决办法
2013/04/22 PHP
wamp下修改mysql访问密码的解决方法
2013/05/07 PHP
PHP中读取照片exif信息的方法
2014/08/20 PHP
在Mac OS上编译安装Nginx+PHP+MariaDB开发环境的教程
2016/02/23 PHP
Prototype RegExp对象 学习
2009/07/19 Javascript
JavaScript Cookie显示用户上次访问的时间和次数
2009/12/08 Javascript
一个基于jQuery的树型插件(OrangeTree)使用介绍
2012/05/03 Javascript
jQuery用unbind方法去掉hover事件及其他方法介绍
2013/03/18 Javascript
js实现漂浮回顶部按钮实例
2015/05/06 Javascript
详细解读AngularJS中的表单验证编程
2015/06/19 Javascript
Angularjs实现多个页面共享数据的方式
2016/03/29 Javascript
关于JS中setTimeout()无法调用带参函数问题的解决方法
2016/06/21 Javascript
手动初始化Angular的模块与控制器
2016/12/26 Javascript
Bootstrap表格使用方法详解
2017/02/17 Javascript
Angular4编程之表单响应功能示例
2017/12/13 Javascript
JS实现的简单折叠展开动画效果示例
2018/04/28 Javascript
谈谈JavaScript中super(props)的重要性
2019/02/12 Javascript
Smartour 让网页导览变得更简单(推荐)
2019/07/19 Javascript
微信小程序定义和调用全局变量globalData的实现
2019/11/01 Javascript
原生JS实现顶部导航栏显示按钮+搜索框功能
2019/12/25 Javascript
详解vue中v-bind:style效果的自定义指令
2020/01/21 Javascript
小程序表单认证布局及验证详解
2020/06/19 Javascript
解决vue单页面应用进入页面加载所有 js 的问题
2020/08/12 Javascript
vue实现tab栏点击高亮效果
2020/08/19 Javascript
[02:10]DOTA2 TI10勇士令状玩法及不朽Ⅰ展示:焕新世界,如你所期
2020/05/29 DOTA
Python 序列化 pickle/cPickle模块使用介绍
2014/11/30 Python
Django框架模板语言实例小结【变量,标签,过滤器,继承,html转义】
2019/05/23 Python
python下载卫星云图合成gif的方法示例
2020/02/18 Python
如何验证python安装成功
2020/07/06 Python
Python+OpenCV图像处理——图像二值化的实现
2020/10/24 Python
HTML5中语义化 b 和 i 标签
2008/10/17 HTML / CSS
英国户外玩具儿童游乐设备网站:TP Toys(蹦床、攀爬框架、秋千、滑梯和游戏屋)
2018/04/09 全球购物
大专应届生个人简历的自我评价
2013/10/15 职场文书
先进班级集体事迹材料
2014/01/30 职场文书
诉讼代理人授权委托书
2014/10/11 职场文书
Mysql中的触发器定义及语法介绍
2022/06/25 MySQL