Практический пример Python 20
Задача:Мяч свободно падает с высоты 100 метров. После каждого приземления он отскакивает на половину своей первоначальной высоты; затем снова падает. Выясните, сколько метров он пролетел всего к моменту 10-го приземления, и на какую высоту он отскакивает при 10-м отскоке.
Анализ программы:None
Исходный код программы:
Пример Python 1
#!/usr/bin/python
# -*- coding: UTF-8 -*-
tour = []
height = []
initial_height = 100.0 # Начальная высота
num_bounces = 10 # Количество отскоков
for i in range(1, num_bounces + 1):
# Начиная со второго приземления, пройденное расстояние должно быть равно высоте отскока, умноженной на 2 (отскок до высшей точки и снова падение)
if i == 1:
tour.append(initial_height)
else:
tour.append(2 * initial_height)
initial_height /= 2
height.append(initial_height)
total_distance = sum(tour)
final_bounce_height = height[-1]
print(f"Общая высота: tour = {total_distance}")
print(f"Высота {num_bounces}-го отскока: height = {final_bounce_height}")
Вывод приведенного выше примера:
总高度:tour = 299.609375 第10次反弹高度:height = 0.09765625
Пример 2
def calculate_distance_and_height(height, times):
total_distance = 0
current_height = height
for i in range(1, times + 1):
# Начиная со второго приземления, пройденное расстояние должно быть равно удвоенной высоте отскока (подъём до высшей точки и повторное падение)
if i == 1:
total_distance += current_height
else:
total_distance += current_height * 2 # Расстояние каждого падения и отскока
current_height /= 2 # Высота после отскока
return total_distance, current_height
# Начальная высота — 100 метров; вычислите общее расстояние и высоту отскока при 10-м приземлении
height = 100
bounce_times = 10
total_distance, final_height = calculate_distance_and_height(height, bounce_times)
print(f"К {bounce_times}-му приземлению всего пройдено {total_distance} метров.")
print(f"Высота {bounce_times}-го отскока составляет {final_height} метров.")
total_distance = 0
current_height = height
for i in range(1, times + 1):
# Начиная со второго приземления, пройденное расстояние должно быть равно удвоенной высоте отскока (подъём до высшей точки и повторное падение)
if i == 1:
total_distance += current_height
else:
total_distance += current_height * 2 # Расстояние каждого падения и отскока
current_height /= 2 # Высота после отскока
return total_distance, current_height
# Начальная высота — 100 метров; вычислите общее расстояние и высоту отскока при 10-м приземлении
height = 100
bounce_times = 10
total_distance, final_height = calculate_distance_and_height(height, bounce_times)
print(f"К {bounce_times}-му приземлению всего пройдено {total_distance} метров.")
print(f"Высота {bounce_times}-го отскока составляет {final_height} метров.")
Вывод приведенного выше примера:
第10次落地时,共经过 299.609375 米。 第10次反弹的高度为 0.09765625 米。Другие расширения
100 примеров на Python