Python解决缩进错误

Python解决缩进错误,python,Python,我已经编写了以下代码,但是当我尝试运行它时,我得到了一个文件“C:\Users\Moses\Desktop\test.py”,第4行 def存款(自助): ^ 缩进错误:应为缩进块错误。我需要帮助 class BankAccount(object): def withdraw(self): pass def deposit(self): pass 类别储蓄账户(银行账户): def\uuuuu init\uuuuuuuuuuuuuuuuu(自平衡=500.0): 自我平衡 de

我已经编写了以下代码,但是当我尝试运行它时,我得到了一个文件“C:\Users\Moses\Desktop\test.py”,第4行 def存款(自助): ^ 缩进错误:应为缩进块错误。我需要帮助

class BankAccount(object):
def withdraw(self):
    pass
def deposit(self):
    pass
类别储蓄账户(银行账户):

def\uuuuu init\uuuuuuuuuuuuuuuuu(自平衡=500.0):
自我平衡
def存款(自身、存款金额):
自身余额+=存款金额
回归自我平衡
如果存款金额<0:
raise运行时错误('存款金额无效')
def提取(自身、提取金额):
自身余额-=提取金额
回归自我平衡
如果自平衡<500:
raise RUNTIMERROR('无法提取超过最低帐户余额')
回归自我平衡
如果提取金额>自身余额:
raise RUNTIMERROR('不能超过当前帐户余额提取')
回归自我平衡
如果提取金额<0:
raise RUNTIMERROR('提取金额无效')
类别当前金额(银行账户): definit(自身,平衡=0.0): 自我平衡

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
def存款(自身、存款金额)
自身余额+=存款金额
回归自我平衡
如果金额<0:
raise运行时错误('存款金额无效')
回归自我平衡
def提取(自身、提取金额):
自身余额-=提取金额
回归自我平衡
如果DWA_金额小于0:
raise RUNTIMERROR('提取金额无效')
回归自我平衡
如果使用DWA_金额>自身余额:
raise RUNTIMERROR('不能超过当前帐户余额提取')
回归自我平衡

我需要一些关于缩进误差的帮助,以了解它是什么以及如何解决它。我是python新手

您的问题在于下面的函数定义;你不能只声明空函数,你需要给它们一些类型的主体

class BankAccount(object):
    def withdraw(self):
        pass
    def deposit(self):
        pass
另外,如果您直接复制粘贴了代码,那么看起来您没有使用足够的空间来缩进

i、 如果我复制粘贴行

def存款(自身):


它只有两个空格,Python使用缩进来表示代码块。您的缩进级别必须一致。选择制表符或一定数量的空格,并在任何地方使用

您还必须至少有一条语句,其中应包含块。如果必须,请使用
pass
语句不执行任何操作

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")

需要进行许多更改

  • 如果不想定义方法,可以使用
    pass

    def提取(自身): 通过

  • 在每个if条件之后,应该有冒号

    如果自平衡<500:


  • 这是正确缩进且逻辑正确的代码。在向社区寻求支持之前,您必须阅读python编码指南

    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
    
    类别银行账户(对象):
    def提取(自身、提取金额):
    通过
    def存款(自身、存款金额):
    通过
    类别储蓄账户(银行账户):
    定义初始值(自平衡=500.0):
    自我平衡
    def存款(自身、存款金额):
    如果存款金额<0:
    raise运行时错误('存款金额无效')
    自身余额+=存款金额
    回归自我平衡
    def提取(自身、提取金额):
    如果自平衡<500:
    raise RUNTIMERROR('无法提取超过最低帐户余额')
    如果提取金额>自身余额:
    raise RUNTIMERROR('不能超过当前帐户余额提取')
    如果提取金额<0:
    raise RUNTIMERROR('提取金额无效')
    自身余额-=提取金额
    回归自我平衡
    类别当前金额(银行账户):
    def __;初始(自身,平衡=0.0):
    自我平衡
    def存款(自身、存款金额):
    如果存款金额<0:
    raise运行时错误('存款金额无效')
    自身余额+=存款金额
    回归自我平衡
    def提取(自身、提取金额):
    如果提取金额<0:
    raise RUNTIMERROR('提取金额无效')
    如果提取金额>自身余额:
    raise RUNTIMERROR('不能超过当前帐户余额提取')
    自身余额-=提取金额
    回归自我平衡
    
    raise RUNTIMERROR(
    提取金额无效。
    您丢失了一个右括号和一个冒号,毕竟if语句这里有很多错误:如果不缩进并写入一些代码(即使它只是
    通过
    )。
    if
    语句也需要缩进和冒号(
    )。您的
    Raise
    上也有多处缺少引号和偏执。在
    Raise
    ing之后
    return
    ing没有意义,因为您永远不会得到缩进错误:unindent与任何外部缩进级别不匹配…您的意思是,它们在我提供的代码处都应该具有相同的间距lookded。您需要缩进类、函数或控制流语句(例如,
    if
    )的主体。您的一些
    if
    语句后也缺少冒号。我建议您从一个非常简单的“hello world”开始当你越来越熟悉的时候,编写程序并添加代码结构。编写一大堆坏代码却不起作用,然后让互联网帮你修复,这是学习一门新语言的可怕方式。
    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