# 第36期-自由落体
Python是一门需要不断实践练习的编程语言,本文档将AI大学堂学员交流群的Python每周练习进行汇总,希望各位小伙伴能够多进行实践练习,逐渐爱上这门神奇的编程语言,掌握它并在生活中能够使用它。
# 1 问题描述
一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
要求根据题意输出小球运动总距离以及第十次反弹高度
# 2 解题思路
计算单次往返运动距离为落地高度乘以3/2
第十次落地,所以只往返九次加上最后单次落地一次
# 3 解题方法
height = 100
i = 0
for _ in range(10):
i += height * (3 / 2)
height /= 2
print(f'第十次落地时,共经过{i - height}米')
print(f'第十次反弹{height}米高')
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
第1-2行: 定义高度变量height以及路程变量i,分别赋值100以及0
第3行: 使用for循环遍历十次运动
第4-5行: 初始高度乘以3/2为单次往返高度,将其值赋予总路程i上,并将下次高度替换为之前高度的一半
第7-8行: 打印第十次落地的总路程以及第十次反弹的高度
# 注意
由于计算的时它在第10次落地时,共经过多少米,而十次循环后计算出来的总路程是十次往返的总路程,所以并不符合题意,需要用总路程减去反弹的高度才是最终10次落地时的总路程。
代码运行结果为:
# 4 视频解析
高清视频讲解,请查看AI大学堂Python基础实战100例 (opens new window)
关注『讯飞AI大学堂』公众号,发送 python100 即可领取Python基础实战100例源代码