首页 > 解决方案 > 从python中的句子中提取数字并对其进行计算

问题描述

我是 Python 新手,但这是个问题

给定一个字符串,编写一个程序返回字符串中出现的数字的总和和平均值,忽略所有其他字符。

输入

输入将是包含字符串的单行。

输出

输出应包含字符串中出现的数字的总和和平均值。注:将平均值四舍五入到小数点后两位。

解释

例如,如果给定的字符串是“我 25 岁零 10 个月大”,则数字为 25、10。您的代码应打印新的数字的总和 (35) 和数字的平均值 (17.5)线。

测试用例

输入

我今年 25 岁零 10 个月

输出

35 17.5

上面的测试用例非常简单明了,当你试图解决这样的问题时,我的问题就来了。

输入

一个女孩64 35spaces numb6rs

输出

205 66.66

所以基本上我要问的是,你如何提取字符串之间存在的数字。使 (164) 不会变成 (1,6,4)

标签: pythonstringlistsplit

解决方案


import re
input_str = "I am 25 years and 10 months old"
num_str = re.findall('[0-9]+',input_str)
if len (num_str) > 0:
    list_str = [int(n) for n in num_str]
    print (sum(list_str),round(sum(list_str)/len(list_str),2))
else:
    print (0,0)

推荐阅读