没有语法错误的行语法错误

时间:2016-06-15 15:48:58

标签: python-2.7

我是python的新手,只是想知道为什么如果下面的代码不起作用 如果有人能指出错误是什么? 这是我得到的错误代码

x.withdraw(wd_amt)
 ^
SyntaxError: invalid syntax

代码:

class Customer(object):

    def __init__(self, name, balance=0.0,dec):
        self.name = name
        self.balance = balance
        self.dec = dec
        #self.d_amt = d_amt

    def withdraw(self, amount):
        if amount > self.balance:
            raise RuntimeError('Amount greater than available balance.')
        self.balance -= amount
        return self.balance

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



user_name = raw_input("name?")
Bal_amount = int(raw_input("amount?"))
dec_1 = (raw_input("withdraw or deposit?"))
x = Customer(user_name,Bal_amount,dec_1)

def play():
    if dec_1 == "withdraw":
     wd_amt = int(raw_input('How much?')
     x.withdraw(wd_amt)
     print x.balance

    elif dec_1 == "deposit":
     dp_amt = int(raw_input('How much?')
     x.deposit(dp_amt)
     print x.balance    

play() 

1 个答案:

答案 0 :(得分:0)

你有不平衡的括号:

 wd_amt = int(raw_input('How much?')

 dp_amt = int(raw_input('How much?')

我打算建议使用pyflakespylint来帮助您捕获这些内容,但它们也只是在下一行报告语法错误。

我建议将来捕获这些内容,当你遇到一个似乎没有意义的语法错误时,请始终查看前一行。一些编辑也可能通过语法高亮显示更明显。

当它不起作用时,开始注释掉行,从一个Python开始说错误是在。如果错误继续发生,则可能是一个问题。例如,如果我注释掉x.withdraw(wd_amt),则错误会移至print x.balance