Python Ejemplo de práctica 20
Problema:Una pelota cae libremente desde una altura de 100 metros; después de cada aterrizaje rebota hasta la mitad de la altura original; vuelve a caer. Calcula cuántos metros ha recorrido en total para cuando aterrice por décima vez. ¿Qué altura alcanza en el décimo rebote?
Análisis del programa:Ninguno
Código fuente del programa:
Python Ejemplo 1
#!/usr/bin/python
# -*- coding: UTF-8 -*-
tour = []
height = []
initial_height = 100.0 # Altura inicial
num_bounces = 10 # Número de rebotes
for i in range(1, num_bounces + 1):
# A partir de la segunda vez, la distancia al aterrizar debe ser la altura del rebote multiplicada por 2 (rebota hasta el punto más alto y vuelve a caer)
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"Altura total: tour = {total_distance}")
print(f"Altura del {num_bounces}º rebote: height = {final_bounce_height}")
El resultado de salida del ejemplo anterior es:
总高度:tour = 299.609375 第10次反弹高度:height = 0.09765625
Ejemplo 2
def calculate_distance_and_height(height, times):
total_distance = 0
current_height = height
for i in range(1, times + 1):
# A partir de la segunda vez, la distancia al aterrizar debe ser la altura del rebote multiplicada por 2 (rebota hasta el punto más alto y vuelve a caer)
if i == 1:
total_distance += current_height
else:
total_distance += current_height * 2 # Distancia de cada caída y rebote
current_height /= 2 # Altura después del rebote
return total_distance, current_height
# Altura inicial de 100 metros, calcula la distancia total y la altura del rebote en el décimo aterrizaje
height = 100
bounce_times = 10
total_distance, final_height = calculate_distance_and_height(height, bounce_times)
print(f"En el aterrizaje n.º {bounce_times}, ha recorrido {total_distance} metros en total.")
print(f"La altura del rebote n.º {bounce_times} es de {final_height} metros.")
total_distance = 0
current_height = height
for i in range(1, times + 1):
# A partir de la segunda vez, la distancia al aterrizar debe ser la altura del rebote multiplicada por 2 (rebota hasta el punto más alto y vuelve a caer)
if i == 1:
total_distance += current_height
else:
total_distance += current_height * 2 # Distancia de cada caída y rebote
current_height /= 2 # Altura después del rebote
return total_distance, current_height
# Altura inicial de 100 metros, calcula la distancia total y la altura del rebote en el décimo aterrizaje
height = 100
bounce_times = 10
total_distance, final_height = calculate_distance_and_height(height, bounce_times)
print(f"En el aterrizaje n.º {bounce_times}, ha recorrido {total_distance} metros en total.")
print(f"La altura del rebote n.º {bounce_times} es de {final_height} metros.")
El resultado de salida del ejemplo anterior es:
第10次落地时,共经过 299.609375 米。 第10次反弹的高度为 0.09765625 米。Otras extensiones
Python 100 ejemplos