Ich versuche gerade, einen Code zu erstellen, der berechnet, wie lange ein Raumschiff benötigt, um eine bestimmte Strecke zurückzulegen, jede Minute springt es die Hälfte der verbleibenden Strecke. Wenn eine Entfernung von weniger als 1 Meter übrig ist, dauert es nur noch eine Minute.Python Rekursive Code (Anfänger)
def space_time(d,t=0):
if d <= 1:
print("- It takes 1 minute to travel", d, "meters")
elif d > 1:
t = t + 1
return space_time(d/2, t)
else:
t = t + 1
print("- ", t, "minutes to travel", d, "meters")
(space_time(10))
Ausgang:
- It takes 1 minute to travel 0.625 meters
Process finished with exit code 0
kann ich sehen, dass mein Problem die für diese jedes Mal war t = t + 1. Meine Idee ist, die Funktion wiederholt wird 1 bis t hinzufügen würde, die bedeuten würde 1 Minute. Aber momentan funktioniert es nicht. Jede Hilfe würde sehr geschätzt werden.
Mathematisch wird es nie die gesamte Strecke – inspectorG4dget
reisen Bitte geben Sie an, warum Ihr Code nicht durch Erklärung Arbeit oder durch die Ausgabe zeigt. Außerdem müssen Sie die Logik in Ihrem Code neu bewerten. Zum Beispiel sind die Vergleiche in Ihren if- und elif-Anweisungen beide d <= 1. – PrestonM
Bis die Entfernung weniger als 1 ist, dauert es nur eine weitere Minute. – Sam