這個程式:輸入存款,提款查餘額,可是run出來,他最後都print0給我,是我後面哪裡寫錯了嗎??
class Account:
def init(self,name):
self.name=name
self.balance=0
def deposit(self):
x=int(input('你要存入多少錢?'))
while x<0:
print('Error')
break
else:
self.balance+=x
return self.balance
def withdraw(self):
y=int(input('你要提取多少錢?'))
while y<0:
print('Error')
break
else:
self.balance-=y
return self.balance
Account('Sam').deposit()
Account('Sam').withdraw()
while Account('Sam').balance<0:
print('Error')
break
else:
print(Account('Sam').balance)
首先要放程式碼至少縮排也要正確,不然根本看不懂
你要用Account('Sam')
創建一個物件且帶入參數時
在第二行要使用def __init__(self, name):
而不是def init(self, name)
而且宣告後你要儲存到變數,使用bank = Account('Sam')
宣告創造一個物件
Account('Sam').deposit()
、Account('Sam').withdraw()
、Account('Sam').balance
都只是一直在創建新的物件,你沒有把內容存起來
要改成
bank = Account('Sam')
bank.deposit()
bank.withdraw()
while bank.balance<0:
...
return
的部分你沒有拿變數去接就會有點多餘,可以把return
的值拿掉直接去呼叫bank.balance
完整程式碼
class Account:
def __init__(self,name):
self.name=name
self.balance=0
def deposit(self):
x=int(input('你要存入多少錢?'))
while x<0:
print('Error')
break
else:
self.balance+=x
return
def withdraw(self):
y=int(input('你要提取多少錢?'))
while y<0:
print('Error')
break
else:
self.balance-=y
return
bank = Account('Sam')
bank.deposit()
bank.withdraw()
while bank.balance<0:
print('Error')
break
else:
print(bank.balance)