如何计算浮点数组的总和?Python实现遇问题求协助
浮点数组求和的正确写法及错误分析
你之前写法的核心错误点
- 直接将数组/数组切片与整数相加:数组是可迭代对象,无法直接和
total(整数/浮点数)做加法运算,会触发类型错误。 - 错误使用循环条件:比如
while income != '',数组永远不会等于空字符串,直接导致无限循环;把数组当作文件对象调用readline(),数组根本没有这个方法。 - 语法错误:比如
for i in range(len(income)缺冒号,range(int(income))试图把数组转成整数,完全不符合语法逻辑。 - 错误的元素访问:
income[i][5]试图对浮点数做下标访问,浮点数是不可订阅类型,必然报错。
正确的实现方式
方式一:for循环遍历累加(最直观)
income = [234.94, 978.56, 769.55, 873.01, 102.21] def income_report(income): total = 0.0 # 初始化为浮点数更严谨 for num in income: total += num # 等价于 total = total + num return total # 调用函数并打印结果 print(income_report(income))
方式二:直接用Python内置sum()函数(最简单高效)
Python内置的sum()函数可以直接对可迭代的数值数组求和,不需要手动写循环:
income = [234.94, 978.56, 769.55, 873.01, 102.21] def income_report(income): return sum(income) print(income_report(income))
方式三:while循环通过索引遍历
如果一定要用while循环,需要通过索引逐个访问数组元素:
income = [234.94, 978.56, 769.55, 873.01, 102.21] def income_report(income): total = 0.0 index = 0 length = len(income) while index < length: total += income[index] index += 1 # 必须手动递增索引,否则无限循环 return total print(income_report(income))
内容的提问来源于stack exchange,提问作者TwistedAnomly42
相关产品推荐
相关产品推荐

