将字符串中的每个数都抽取出来,然后统计所有数的个数并求和。
输入格式:
一行字符串,字符串中的数之间用1个空格或者多个空格分隔。
输出格式:
第1行:输出数的个数。
第2行:求和的结果,保留3位小数。
输入样例:
2.1234 2.1 3 4 5 6
输出样例:
6
22.223
实现
#!/usr/bin/env python3
#-*- coding:utf-8 -*-
from functools import reduce
#------------------------
#Return List object
def strSeparator(str):
#undirected a specific separator,so it will use default mode of spliting string by space char and not including space char in result element list.
return str.split()
#Return Total amount
#Error Return 'error'
def totalAmount(ls):
try:
sum=0
#Transforming data type in each elements
#'lambda expression' as java's anonymous fuction is very convenient.
ls=map(lambda x:float(x),ls)
#Mutiple add
sum=reduce(lambda x,y:x+y,ls)
except:
sum='error'
finally:
return sum
#------------------------
s=strSeparator(input())
#String length
print(f"{len(s)}")
#Total amount
result=totalAmount(s)
#Three object expression as Java's 'expression sytax ? true result : false result'
print(f"{('The type of inputing is error! ' if result=='error' else '{0:.3f}'.format(result))}")
输出
1 3 5
3
9.000
Q.E.D.