Python-Übungsbeispiel 20
Problem:Ein Ball fällt frei aus einer Höhe von 100 Metern. Nach jeder Landung prallt er auf die Hälfte seiner ursprünglichen Höhe zurück; dann fällt er wieder. Finden Sie heraus, wie viele Meter er bis zur 10. Landung insgesamt zurückgelegt hat und wie hoch er beim 10. Rückprall zurückspringt.
Programmanalyse:Keine
Programmquellcode:
Python-Beispiel 1
#!/usr/bin/python
# -*- coding: UTF-8 -*-
tour = []
height = []
initial_height = 100.0 # Anfangshöhe
num_bounces = 10 # Anzahl der Rückpralle
for i in range(1, num_bounces + 1):
# Ab der zweiten Landung sollte die zurückgelegte Strecke die Sprunghöhe multipliziert mit 2 sein (zum höchsten Punkt springen und wieder fallen)
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"Gesamthöhe: tour = {total_distance}")
print(f"Die {num_bounces}-te Sprunghöhe: height = {final_bounce_height}")
Die Ausgabe des obigen Beispiels ist:
总高度:tour = 299.609375 第10次反弹高度:height = 0.09765625
Beispiel 2
def calculate_distance_and_height(height, times):
total_distance = 0
current_height = height
for i in range(1, times + 1):
# Ab dem zweiten Aufprall sollte die zurückgelegte Strecke die Sprunghöhe multipliziert mit 2 sein (bis zum höchsten Punkt springen und wieder fallen)
if i == 1:
total_distance += current_height
else:
total_distance += current_height * 2 # Die Strecke jedes Falls und Aufpralls
current_height /= 2 # Höhe nach dem Aufprall
return total_distance, current_height
# Die Anfangshöhe beträgt 100 Meter; berechne die Gesamtstrecke und die Sprunghöhe bei der 10. Landung
height = 100
bounce_times = 10
total_distance, final_height = calculate_distance_and_height(height, bounce_times)
print(f"Bei der {bounce_times}. Landung wurden insgesamt {total_distance} Meter zurückgelegt.")
print(f"Die Höhe des {bounce_times}. Rückpralls beträgt {final_height} Meter.")
total_distance = 0
current_height = height
for i in range(1, times + 1):
# Ab dem zweiten Aufprall sollte die zurückgelegte Strecke die Sprunghöhe multipliziert mit 2 sein (bis zum höchsten Punkt springen und wieder fallen)
if i == 1:
total_distance += current_height
else:
total_distance += current_height * 2 # Die Strecke jedes Falls und Aufpralls
current_height /= 2 # Höhe nach dem Aufprall
return total_distance, current_height
# Die Anfangshöhe beträgt 100 Meter; berechne die Gesamtstrecke und die Sprunghöhe bei der 10. Landung
height = 100
bounce_times = 10
total_distance, final_height = calculate_distance_and_height(height, bounce_times)
print(f"Bei der {bounce_times}. Landung wurden insgesamt {total_distance} Meter zurückgelegt.")
print(f"Die Höhe des {bounce_times}. Rückpralls beträgt {final_height} Meter.")
Die Ausgabe des obigen Beispiels ist:
第10次落地时,共经过 299.609375 米。 第10次反弹的高度为 0.09765625 米。Weitere Erweiterungen
Python 100 Beispiele