Wert in der Zukunft jährliche Investitionen
Angenommen, Sie haben eine Investition planen, wo Sie investieren einen festen Betrag zu Beginn jedes Jahres. Berechnen Sie den gesamten Wert der Investitionen am Ende des letzten Jahres. Die Eingänge werden der Betrag zu investieren jedes Jahr, der Zinssatz, und die Anzahl der Jahre der Investition.
Dieses Programm berechnet den zukünftigen Wert
von einer Konstanten jährlichen Investitionen.
Geben Sie die jährlichen Investitionen: 200
Geben Sie den jährlichen Zinssatz: .06
Geben Sie die Anzahl der Jahre: 12
Der Wert in 12 Jahren: 3576.427533818945
Habe ich versucht, ein paar verschiedene Dinge, wie unten, aber es nicht geben Sie mir, dass 3576.42, es gibt mir nur $400. Irgendwelche Ideen?
principal = eval(input("Enter the yearly investment: "))
apr = eval(input("Enter the annual interest rate: "))
years = eval(input("Enter the number of years: "))
for i in range(years):
principal = principal * (1+apr)
print("The value in 12 years is: ", principal)
- Die Idee ist, es zu verwenden
eval
stattfloat
? plunk! - für den Hinweis. Off-topic Hauptärgernis: Sie meinen deren, nicht wer.
- Natürlich. Sie müssen hassen, HTTP_referer zu 🙂
- Ich hoffe wirklich, dass
eval
war nicht verwendet, indem der Lehrer infutval.py
- Es ist unangenehm, zu betrachten, aber zumindest macht es für ein Interessantes Stück computer-Geschichte 😉 Und ich würde hoffen, dass kein Lehrer zeigen, dass die Art von Missbrauch
eval
! - Python - Zelle Buch verwendet eval(), ist es falsch?
- Ich vermute, dass die
eval
resultierte aus2to3
- tool automatische Portierung von 2.x-code mitinput
. :/
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn es einen jährlichen Investitionen, sollten Sie es jedes Jahr:
Mit Ihren Eingaben, diese Ausgänge
Update: Antworten auf Ihre Fragen aus den Kommentaren, um zu klären, was Los ist:
1) können Sie
int()
füryearly
und die gleiche Antwort erhalten, die ist in Ordnung, wenn Sie investieren immer eine ganze Reihe von Währungen. Mit float funktioniert genauso gut, sondern ermöglicht auch die Höhe der199.99
zum Beispiel.2)
+=
und*=
sind eine praktische Kurzschrift:total += yearly
bedeutettotal = total + yearly
. Es ist ein wenig einfacher zu geben, aber wichtiger ist, dass es deutlich mehr drückt die Bedeutung. Ich lese es soDie längere form ist einfach nicht so klar:
years
werdenint()
eval()
. Ehrlich gesagt, für Ihre Zwecke, es gibt keinen wirklichen Schaden, es zu benutzen; es ist nur als schlechte Praxis im Allgemeinen, und es scheint wie eine gute Idee zu lernen, best practices von Anfang an. Das Hauptproblem ist, dasseval()
laufen, was auch immer es ist gegeben als code, so könnte jemand geben Sie etwas gemeines, anstatt den zahlen, die Sie gefragt haben. Es gibt unzählige weitere ausführliche Erläuterungen finden Sie an anderer Stelle.eval()
, suchen Sie im Internet oder schauen Sie auf all die Fragen, die hier SO über ihn. Ich schrieb meinen code mitfloat()
undint()
weil ich denke, dass ist besser der Praxis, aber deine Frage war dazu, wie ein unerwartetes Ergebnis, und ich zeigte Ihnen, wo Sie falsch gelaufen ist. Der rest ist Gefühl off-topic.Es getan werden kann, analytisch:
HTML:
Ähnlich, wenn Sie versuchen, herauszufinden, die Menge, die Sie investieren müssen, so erhalten Sie eine bestimmte Anzahl, die Sie tun können:
HTML:
Als Vorschlag in den Kommentaren, sollten Sie nicht verwenden
eval()
hier. (Mehr info auf eval kann gefunden werden in der Python-Docs). -- Ändern Sie stattdessen Ihrem code verwendenfloat()
oderint()
wo anwendbar, wie unten gezeigt.Auch, Ihre
print()
Anweisung ausgedruckt die Klammer zu und Komma, die ich erwarte, dass Sie nicht wollen. Ich reinigte es in dem code unten, aber wenn das, was Sie wollte, was Sie hatten, fühlen Sie sich frei, um es wieder setzen.