PROG0185 - Bank account

The concept of a bank account in a program makes a good candidate for a class. A bank account typically has the following properties (attributes): the name of the account holder, the account number and the current amount of money in the account. We can execute three actions on a bank account: withdraw money, deposit money and display the particulars of the account. 

Assignment

Your assignment consists of making a class BankAccount with the following methods:

  1. The initializing method __init__ takes the name of the account holder, the account number and an initial amount of money as parameters. The initial amount given is an optional parameter and gets standard value 0.
  2. The method __str__ prints a string representation of a bank account. Use the example below as a base for the format in which your data will be printed.
  3. The method __repr__ also prints a string representation of a bank account. Where the method __str__ is used to obtain a representation of an object that can easily be read for the user, the method __repr__ prints a representation that can only be read by the python interpreter. The method __repr__ gives a syntactical correct Python expression, that — if it were evaluated — creates an object that is equal to the object that was initially given to __repr__.
  4. Two methods deposit(n) and withdraw(n). The parameter of these methods is the amount of money that is withdrawn or deposited.

Example

>>> b1 = BankAccount('Jan Jansen', '001457894501', 10000)
>>> b2 = BankAccount('Peter Peeters', '842457894511', 10000)
>>> b1.deposit(250)
>>> b1.withdraw(1000)
>>> b2.withdraw(300)
>>> str(b1)
'Jan Jansen, 001457894501, amount: 9250'
>>> print(b2)
Peter Peeters, 842457894511, amount: 9700
>>> repr(b2)
"BankAccount('Peter Peeters', '842457894511', 9700)"
>>> b3 = BankAccount('David Davidse', '002457896312')
>>> b3.deposit(112)
>>> print(b3)
David Davidse, 002457896312, amount: 112
>>> b3
BankAccount('David Davidse', '002457896312', 112)

Het concept van een bankrekening in een programma vormt een goede kandidaat voor een klasse. Een bankrekening heeft typisch de volgende eigenschappen (attributen): de naam van de rekeninghouder, het rekeningnummer en het huidige bedrag op de rekening. We kunnen drie acties uitvoeren op een bankrekening: geld afhalen, geld storten en de gegevens van de bankrekening weergeven.

Opgave

Je opdracht bestaat erin een klasse BankRekening aan te maken met volgende methoden:

  1. De initialisatiemethode __init__ krijgt als parameters de naam van de rekeninghouder, een rekeningnummer en een initieel bedrag mee. Het meegeven van een initieel bedrag als parameter is optioneel, en krijgt als standaardwaarde de waarde 0.
  2. De methode __str__ geeft een stringrepresentatie van een bankrekening terug. Baseer je voor de vorm waarin de gegevens worden uitgeschreven op het voorbeeld hieronder.
  3. De methode __repr__ geeft eveneens een uitprintbare stringrepresentatie van een bankrekening terug. Waar de methode __str__ wordt gebruikt om een representatie van een object te bekomen die gemakkelijk leesbaar is voor een menselijke gebruiker, geeft de __repr__ een representatie terug die gelezen kan worden door de python interpreter. De methode __repr__ geeft een syntactisch correcte Python expressie, die — wanneer deze geëavalueerd zou worden — een object creëert die gelijk is aan het object dat origineel werd doorgegeven aan __repr__.
  4. Twee methoden storten(n) en afhalen(n). De parameter van deze methoden is het bedrag dat bijgestort of afgehaald wordt.

Voorbeeld

>>> b1 = BankRekening('Jan Jansen', '001457894501', 10000)
>>> b2 = BankRekening('Peter Peeters', '842457894511', 10000)
>>> b1.storten(250)
>>> b1.afhalen(1000)
>>> b2.afhalen(300)
>>> str(b1)
'Jan Jansen, 001457894501, bedrag: 9250'
>>> print(b2)
Peter Peeters, 842457894511, bedrag: 9700
>>> repr(b2)
"BankRekening('Peter Peeters', '842457894511', 9700)"
>>> b3 = BankRekening('David Davidse', '002457896312')
>>> b3.storten(112)
>>> print(b3)
David Davidse, 002457896312, bedrag: 112
>>> b3
BankRekening('David Davidse', '002457896312', 112)

Added by:Peter Dawyndt
Date:2011-11-17
Time limit:5s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:PY_NBC
Resource:None

© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.