2017-03-16 2 views
-7

Ich habe den folgenden Code geschrieben, aber wenn ich versuche, es auszuführen, erhalte ich eine Datei "C: \ Benutzer \ Moses \ Desktop \ test.py", Zeile 4 def deposit (self): ^ IndentationError: erwartet einen eingerückten Block Fehler. Ich brauche Hilfe dabei.Python löste einen Einrückungsfehler

class BankAccount(object): 
def withdraw(self): 
    pass 
def deposit(self): 
    pass 

Klasse Savings (Bankkonto):

def __init__(self, balance=500.0): 
self.balance = balance 

def deposit(self, deposit_amount): 
self.balance += deposit_amount 
    return self.balance 

    if deposit_amount < 0: 
    raise RuntimeError('Invalid deposit amount.') 

def withdraw(self, withdraw_amount): 
self.balance -= withdraw_amount 
    return self.balance 

    if self.balance < 500: 
    raise RuntimeError('Cannot withdraw beyond the minimum account balance') 
    return self.balance 

    if withdraw_amount > self.balance: 
    raise RuntimeError('Cannot withdraw beyond the current account balance') 
    return self.balance 

    if withdraw_amount < 0: 
    raise RuntimeError('Invalid withdraw amount') 

Klasse CurrentAmount (Bankkonto): def init (self, Balance = 0,0): self.balance = Balance

def deposit(self,deposit_amount) 
self.balance += deposit_amount 
    return self.balance 

    if amount < 0: 
    raise RuntimeError('Invalid deposit amount.') 
    return self.balance 


def withdraw(self, withdraw_amount): 
    self.balance -= withdraw_amount 
    return self.balance 

    if withdwa_amount < 0: 
    raise RuntimeError('Invalid withdraw amount') 
    return self.balance 

    if withdwa_amount > self.balance: 
    raise RuntimeError('Cannot withdraw beyond the current account balance') 
    return self.balance 

Ich brauche ein wenig Hilfe mit dem Eindruckfehler, um zu wissen, was es ist und wie man es löst. Ich bin neu in Python

+0

'Raise RuntimeError ('Ungültiger Auszahlungsbetrag.'Sie vermissen eine schließende Klammer – Pearley

+0

und einen Doppelpunkt nach allen if-Anweisungen – languitar

+1

Eine Menge Fehler hier: Sie können nicht' def' ohne dann Einrücken und Schreiben von etwas Code (auch wenn es nur 'pass') tun. 'if'-Anweisungen erfordern auch Einrückung und einen Doppelpunkt (': '). dir fehlen auch Anführungszeichen und Klammern zu deinem 'Raise' an mehr als einem Ort. Es gibt keinen Sinn in 'return' nach 'raise'ing, weil du nie dorthin kommst –

Antwort

0

Ihr Problem liegt bei den Funktionsdefinitionen unten; Du kannst nicht nur leere Funktionen deklarieren, du musst ihnen irgendeine Art von Körper geben.

class BankAccount(object): 
    def withdraw(self): 
     pass 
    def deposit(self): 
     pass 

Auch wenn Sie direkt Ihr Code kopieren kleistert haben, dann sieht es aus wie Sie nicht genug Räume mit

dh einrücken, wenn ich einfügen kopieren Sie die Zeile

def deposit(self):

es hat nur 2 Leerzeichen davor

0

Python verwendet Einrückung, um Code-Blöcke anzuzeigen. Sie müssen müssen konsistent in Ihrem Einzug Ebenen sein. Wählen Sie Tabs oder eine bestimmte Anzahl von Leerzeichen und verwenden Sie das überall.

Sie müssen auch mindestens eine Anweisung haben, wo ein Block erwartet wird. Wenn Sie müssen, verwenden Sie eine pass Anweisung, um nichts zu tun.

class BankAccount(object): 
    def withdraw(self): 
     pass  # Add this 

    def deposit(self): 
     pass  # Add this 

    def other_function(self): 
     if 42 != 42: 
      raise EndOfTheWorldError("what") 
+0

IndentationError: independent stimmt nicht mit irgendeiner äußeren Einrückung überein ... was du meinst ist, sie sollten alle denselben Abstand haben –

+0

Betrachte die Code, den ich zur Verfügung gestellt habe. Sie müssen Dinge wie den Text einer Klasse, Funktion oder Steuerflussanweisung einrücken (z. B. "if"). Sie verpassen auch den Doppelpunkt nach einigen Ihrer 'if'-Anweisungen. –

+0

Ich schlage vor, Sie beginnen mit einem sehr einfachen "Hallo Welt" -Programm und fügen Code-Konstrukte hinzu, wenn Sie vertrauter werden. Einen riesigen Klumpen kaputten Codes zu schreiben, der nicht funktioniert, und dann das Internet darum zu bitten, es für dich zu reparieren, ist eine schreckliche Art, eine neue Sprache zu lernen. –

0

Es sind viele Änderungen erforderlich.

  1. Wenn Sie nicht wollen, Methoden definieren, können Sie pass

    def zurückziehen (Selbst-) verwenden: Pass

  2. Nach jeder, wenn die Bedingung, sollte es :

    Doppelpunkt wenn Selbstausgleich < 500:

1

Dieser Code ist korrekt eingerückt und logisch korrekt. Sie müssen Python-Codierungsrichtlinien lesen, bevor Sie Unterstützung für eine Community erhalten.

class BankAccount(object): 
    def withdraw(self, withdraw_amount): 
     pass 

    def deposit(self, deposit_amount): 
     pass 


class SavingsAccount(BankAccount): 
    def __init__(self, balance=500.0): 
     self.balance = balance 

    def deposit(self, deposit_amount): 
     if deposit_amount < 0: 
      raise RuntimeError('Invalid deposit amount.') 
     self.balance += deposit_amount 
     return self.balance 

    def withdraw(self, withdraw_amount): 
     if self.balance < 500: 
      raise RuntimeError('Cannot withdraw beyond the minimum account balance') 

     if withdraw_amount > self.balance: 
      raise RuntimeError('Cannot withdraw beyond the current account balance') 

     if withdraw_amount < 0: 
      raise RuntimeError('Invalid withdraw amount.') 

     self.balance -= withdraw_amount 
     return self.balance 


class CurrentAmount(BankAccount): 
    def __init__(self, balance=0.0): 
     self.balance = balance 

    def deposit(self,deposit_amount): 
     if deposit_amount < 0: 
      raise RuntimeError('Invalid deposit amount.') 

     self.balance += deposit_amount 
     return self.balance 

    def withdraw(self, withdraw_amount): 
     if withdraw_amount < 0: 
      raise RuntimeError('Invalid withdraw amount') 

     if withdraw_amount > self.balance: 
     raise RuntimeError('Cannot withdraw beyond the current account balance') 

     self.balance -= withdraw_amount 
     return self.balance 
Verwandte Themen