2016-12-05 9 views
-3

Ich weiß nicht, wie das Identitätsproblem auf Python mit diesem Code beheben. Denn das ist alles, was in diesem Moment rausgeworfen wird. Wenn ich es laufe.Probleme mit Einzug auf Python

import math 

p = int(raw_input("Please enter deposit amount: \n")) 

i = int(raw_input("Please input interest rate: \n")) 

t = int(raw_input("Please insert number of years of the invesment: \n")) 

interest = raw_input("Do you want a simple or compound interest ? \n") 



A =p(1+r*t) 

B =p (1+r)^t 



if interest == "simple": 
print int(float(A)) 

elif interest == "compound": 
print int(float(B)) 
+1

Legen Sie zwei/vier/sechzehn Leerzeichen vor den beiden 'print' Aussagen sein. –

Antwort

2

In Python müssen Blöcke von Anweisungen eingerückt werden, um zu definieren, wo der Block endet. Einige Sprachen verwenden geschweifte Klammern ({, }) oder andere Symbole, um den Anfang und das Ende eines Blocks zu begrenzen. In Python gibt jedoch ein Doppelpunkt (:) am Ende einer Zeile an, dass die nächste Zeile der Anfang eines Blocks ist und der Block mehr eingerückt werden muss als die Zeile, in der der Doppelpunkt aktiviert ist, und jede Zeile im Block muss eingerückt sein die genau gleiche Menge. Jede folgende Zeile, die sich auf die ursprüngliche Einrückungsebene der Zeile mit dem Doppelpunkt befindet (oder umgekehrt rückwärts eingerückt ist), zeigt das Ende dieses Blocks an.

So ...

Ihr if Block (einzelne Codezeile unterhalb der if Linie) sollte mehr als die if Linie selbst eingerückt werden. Die Zeile elif ist nicht eingerückt, da sie nicht Teil des Blocks if ist. Ähnlich mit der elif Linie und dem elif Block.

die Vertiefung für die letzten 4 Zeilen sollte daher sein:

if interest == "simple": 
    print int(float(A)) 
elif interest == "compound": 
    print int(float(B)) 

Mit den meisten Sprachen Einrücken ist nur für Stil und Lesbarkeit. Mit Python ist es auch Teil der Syntax.

+0

Es gibt diesen Fehler in Zeile 13 zurück: @timotree Traceback (jüngste Aufforderung zuletzt): File "", Zeile 13, in Nameerror: name 'r' ist – Duvall912

+0

nicht definiert Wenn ich es in der Flucht Konsole – Duvall912

+0

Das ist eine separate Frage. Aber es scheint, dass Sie 'A = p (1 + r * t)' einschließlich 'r 'auswerten, ohne es irgendwo definiert zu haben (und wieder in der nächsten Zeile). –

1

Wenn Sie schreiben eine if in Python

if a == b: 
    print c 

Ihre if wird einige Code auszuführen, wenn es Bedingung wahr ist.

Wenn Ihr, wenn mehr tut, als nur eine Sache

if a == b: 
    print c 
    print b 

es ist nicht immer klar, welche Maßnahmen die if ‚s Zustand

if a == b: 
print c 
print b 

In diesem Fall Python gebunden sind nicht weiß, ob zu nur print b wenn a == b oder zu print b so oder so. Computer mögen es nicht, wenn der Code nicht klar ist.

File "broken.py", line 2 
    print(c) 
     ^
IndentationError: expected an indented block 

Aber es gibt etwas, was wir tun können, um es klarer zu machen.

Gefallen Sie diesen

if a == b: 
    print c 
print b 

Jetzt Python kann sagen, dass print b nicht auf den Zustand der, wenn gebunden ist, weil es nicht eingerückt ist.

TL; DR: Die letzten 4 Zeilen des Programms sollte

if interest == "simple": 
    print int(float(A)) 
elif interest == "compound": 
    print int(float(B))