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

如何基于现有Python步数统计代码计算年度平均步数?

解决方案:添加年度平均步数计算

修改思路

  1. 让average_steps函数返回当月总步数,方便累加得到年度总步数
  2. 在主函数中维护变量记录全年总步数,逐个月份累加
  3. 计算全年总天数,基于总步数和总天数得出年度平均步数

修改后的完整代码

# Named constants
JAN_DAYS = 31
FEB_DAYS = 28
MARCH_DAYS = 31
APRIL_DAYS = 30
MAY_DAYS = 31
JUNE_DAYS = 30
JULY_DAYS = 31
AUG_DAYS = 31
SEPT_DAYS = 30
OCT_DAYS = 31
NOV_DAYS = 30
DEC_DAYS = 31
TOTAL_YEAR_DAYS = JAN_DAYS + FEB_DAYS + MARCH_DAYS + APRIL_DAYS + MAY_DAYS + JUNE_DAYS + \
                  JULY_DAYS + AUG_DAYS + SEPT_DAYS + OCT_DAYS + NOV_DAYS + DEC_DAYS


def main():
    # Open the file.
    steps_file = open('steps.txt', 'r')

    total_year_steps = 0

    # Display monthly average and accumulate total steps
    total_year_steps += average_steps(steps_file, 'January', JAN_DAYS)
    total_year_steps += average_steps(steps_file, 'February', FEB_DAYS)
    total_year_steps += average_steps(steps_file, 'March', MARCH_DAYS)
    total_year_steps += average_steps(steps_file, 'April', APRIL_DAYS)
    total_year_steps += average_steps(steps_file, 'May', MAY_DAYS)
    total_year_steps += average_steps(steps_file, 'June', JUNE_DAYS)
    total_year_steps += average_steps(steps_file, 'July', JULY_DAYS)
    total_year_steps += average_steps(steps_file, 'August', AUG_DAYS)
    total_year_steps += average_steps(steps_file, 'September', SEPT_DAYS)
    total_year_steps += average_steps(steps_file, 'October', OCT_DAYS)
    total_year_steps += average_steps(steps_file, 'November', NOV_DAYS)
    total_year_steps += average_steps(steps_file, 'December', DEC_DAYS)

    # Calculate and display annual average steps
    annual_average = total_year_steps / TOTAL_YEAR_DAYS
    print('\nThe average steps taken for the year was', format(annual_average, ',.1f'))

    # Close the file.
    steps_file.close()


def average_steps(steps_file, month_name, days):
    sum_steps = 0
    for count in range(days):
        sum_steps += int(steps_file.readline())
    average = sum_steps / days
    print('The average steps taken in', month_name, 'was', format(average, ',.1f'))
    return sum_steps


main()

关键修改说明

  • 新增常量TOTAL_YEAR_DAYS,通过累加各月天数得到全年总天数,避免硬编码数字
  • 修改average_steps函数:将变量名sum改为sum_steps(避免与内置函数冲突),添加return sum_steps返回当月总步数
  • 在main函数中初始化total_year_steps,每次调用average_steps时累加返回的当月总步数
  • 最后计算年度平均步数并输出,格式与月份平均保持一致

示例输出

The average steps taken in January was 5,246.1
The average steps taken in February was 4,851.9
The average steps taken in March was 5,777.6
The average steps taken in April was 5,802.1
The average steps taken in May was 4,711.5
The average steps taken in June was 4,792.3
The average steps taken in July was 5,638.2
The average steps taken in August was 5,759.6
The average steps taken in September was 6,114.6
The average steps taken in October was 5,411.0
The average steps taken in November was 4,268.8
The average steps taken in December was 5,138.1

The average steps taken for the year was 5,267.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 12:45:42