You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python已实现数字各位求和,如何计算平均值?求助

数字各位平均值计算的解决方案

你的现有代码有个小问题:最后print语句里用了{result},但实际存储总和的变量是r,得改成{r}才能正确输出总和。

要计算平均值,你需要统计数字的总位数——平均值等于各位数字之和除以位数。你之前尝试的r/m行不通,因为m只是每次循环取出的单个个位数字,不是总位数。

修改后的完整代码:

num = int(input("Enter a number\n"))
sum_digits = 0
digit_count = 0

while num != 0:
    digit = num % 10
    sum_digits += digit
    digit_count += 1  # 每处理一位,计数器加1
    num = num // 10  # 整数除法,直接去掉最后一位

average = sum_digits / digit_count
print(f"The sum of all digits is {sum_digits} and the average is {average}")

几个关键点:

  • 新增digit_count变量,用来记录数字的总位数,每次循环递增1
  • 把变量名改成sum_digits、digit这类语义化名称,比r、m更容易理解,后续维护也方便
  • 用num // 10替代int(num / 10),Python里整数除法用//更规范,避免浮点数转换带来的潜在问题
  • 用/计算平均值会得到浮点数结果(比如输入5555时,20/4=5.0),如果需要整数结果,可以换成sum_digits // digit_count

测试输入5555,输出结果为:The sum of all digits is 20 and the average is 5.0

内容的提问来源于stack exchange,提问作者momoshki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 14:40:36