如何基于现有Python步数统计代码计算年度平均步数?
解决方案:添加年度平均步数计算
修改思路
- 让
average_steps函数返回当月总步数,方便累加得到年度总步数 - 在主函数中维护变量记录全年总步数,逐个月份累加
- 计算全年总天数,基于总步数和总天数得出年度平均步数
修改后的完整代码
# 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
相关产品推荐
相关产品推荐

