一、编程题目
编程题目:模拟keep的运动周报,定义四个列表,分别保存每周的运动步数,然后统计每周的总步数、最高步数、最低步数以及一个月(按四周一个月计算)的总步数。程序运行结果如图所示(数字是随机产生的):
二、代码实现
1、引入ramdom模块用于生成随机步数,定义4个空列表用于存储一个月内4周的步数,一个列表存储一周的步数。
import random
sport1 = []
sport2 = []
sport3 = []
sport4 = []
2、循环随机生成4周的步数
for i in range(7):
for j in range(4):
step = random.randint(1000,100000)
eval('sport'+str(j+1)).append(step)
注意这里,主要使用到了一个简洁的写法,使用eval函数拼接了sport列表的名称,从而达到在内层循环中往sport1 、sport12、sport3 、sport4 分别写入一天的步数,通过外层循环7天,实现每个sport列表都存储了7天的步数。
3、定义一个列表weeksport用于存储每周的总步数、最高步数、最低步数等信息。然后循环每个sport列表进行统计。
weeksport=[]
for i in range(4):
sport = eval('sport'+str(i+1))
weeksport.append((sum(sport),max(sport),min(sport)))
注意以上代码,同样使用了eval的便捷写法,每次获取一个sport列表进行统计,从而不需要写4个循环,一个循环就搞定。
4、定义totalsport 存储这个月的总步数,循环每周的步数统计结果,然后输出
totalsport = 0
i = 1
for item in weeksport:
print('第',i,'周走了',item[0],'步',end='\t')
print('最高',item[1],end='\t')
print('最低',item[2])
totalsport+=item[0]
i+=1
print('本月共走了',totalsport,'步')
三、测试
四、总结
这里主要使用到了eval函数,动态的拼接了变量的名称,从而简化了代码的编写。