def input_data():
data = []
num_days = int(input("请输入记录的天数:"))
for i in range(num_days):
date = input("请输入日期:")
distance = float(input("请输入当天运动距离:"))
data.append((date, distance))
return data
def jszh(data):
return sum([day[1] for day in data])
def main():
data = input_data()
jieguo = jszh(data)
print(f"运动的总距离为:{jieguo}")
if __name__ == "__main__":
main()
请输入记录的天数:3
请输入日期:1.1
请输入当天运动距离:5.0
请输入日期:1.2
请输入当天运动距离:3.5
请输入日期:1.3
请输入当天运动距离:7.2
运动的总距离为:15.7
1.背景介绍
- 在日常健身和健康管理中,人们常常需要记录自己的运动数据,如运动距离等。手动计算运动总距离既繁琐又容易出错,使用Python编程可以高效、准确地解决这个问题。
- 本程序的设计目的是帮助用户快速计算出一段时间内运动的总距离,便于用户了解自己的运动情况。
2.设计思路
- 采用函数模块化的设计思路,将程序划分为几个功能明确的函数,便于代码的编写、阅读和维护。
3.完成细节
- 创建空列表 data 来存储运动数据。
- 通过 input 获取记录天数,并转换为整数类型存储在 num_days 中。
- 使用 for 循环,根据 num_days 循环获取每天的日期和运动距离,并以元组形式添加到 data 列表中。
- 最后返回存储数据的 data 列表。
- 使用列表推导式 [day[1] for day in data] 从 data 列表(每个元素是 (date, distance) 元组)中提取运动距离。
- 再用 sum 函数对提取的运动距离进行求和,得到总运动距离并返回。
- 调用 input_data 函数获取运动数据并存储在 data 中。
- 将 data 作为参数传入 jssh 函数计算总运动距离,结果存储在 jiegou 中。
- 使用 print 函数输出总运动距离。
以下为代码总成:
def input_data():
data = []
num_days = int(input("请输入记录的天数:"))
for i in range(num_days):
date = input("请输入日期:")
distance = float(input("请输入当天运动距离:"))
data.append((date, distance))
return data
def jszh(data):
return sum([day[1] for day in data])
def main():
data = input_data()
jieguo = jszh(data)
print(f"运动的总距离为:{jieguo}")
if __name__ == "__main__":
main()
4.结果呈现
请输入记录的天数:3
请输入日期:1.1
请输入当天运动距离:5.0
请输入日期:1.2
请输入当天运动距离:3.5
请输入日期:1.3
请输入当天运动距离:7.2
运动的总距离为:15.7
5.项目总结
- 通过这个项目,深入理解了Python函数的定义和调用机制。
- 学会了如何使用列表推导式和 sum 函数进行数据处理。
- 掌握了如何通过函数模块化设计来简化程序结构。
- 问题:在 input_data 函数中,用户输入可能不符合要求(如输入非数字字符),导致程序出错。
- 解决方案:可以添加输入验证机制,如使用 try - except 结构来捕获异常,提示用户重新输入正确的数据类型。