.. sectnum:: Oefeningen 2021-03-15 (Dodona) ============================== Opgave ----------- Schrijf een class `BankRekening` met 2 methods: `storten`, en `afhalen`. Je moet de class als volgt kunnen gebruiken:: rekening = BankRekening() rekening.storten(250) rekening.afhalen(50) Hints: - vergeet niet de initialisatie functie `__init__` toe te voegen - gebruik `self` om een property `bedrag` aan te maken in `__init__` - zorg dat bij het aanmaken van de rekening er 0 euro op staat Opgave ----------- Voeg een method `__str__` toe aan class `BankRekening`. Je moet de class als volgt kunnen gebruiken:: rekening = BankRekening() print(rekening) # print "bedrag: 0" rekening.storten(250) print(rekening) # print "bedrag: 250" rekening.afhalen(50) print(rekening) # print "bedrag: 200" Hints: - voeg de `__str__` method toe zodat print(rekening) de gewenste info toont - de method `__str__` krijgt enkel `self` als parameter, en geeft een string terug Opgave ----------- Pas de `__init__` methode van class `BankRekening` aan zodat je 3 parameters kan megeven: de naam van de eigenaar, de rekeningnummer en het initiele bedrag. Je moet de class als volgt kunnen gebruiken:: rekening = BankRekening("Jan Jansen", "001457894501", 10000) print(rekening) # print "Jan Jansen, 001457894501, bedrag: 10000" rekening.storten(250) rekening.afhalen(1000) print(rekening) # print "Jan Jansen, 001457894501, bedrag: 9250" Hints: - in `__init__` dien je de parameters op te slaan in properties - in `__str__` dien je de nodige aanpassingen te maken zodat de juiste uitvoer getoond wordt als je `print(rekening)` gebruikt Opgave ----------- Schrijf een class `Combinatieslot`. Je moet de class als volgt kunnen gebruiken:: slot = Combinatieslot(7) print(slot) # toont 0 Hints: - voeg in `__init__` een property `geheim` toe met ingestelde waarde (7) - voeg in `__init__` een property `code` toe met waarde 0 - voeg een method `__str__` toe ervoor zorgt dat `print(slot)` werkt zoals getoond Opgave ----------- Voeg een method `open` toe. Je moet de class als volgt kunnen gebruiken:: slot = Combinatieslot(7) slot.open() # toont False Hint: `open()` toont False omdat 0 niet gelijk is aan de geheime code 7 Opgave ----------- Voeg een method `roteer` toe. Je moet de class als volgt kunnen gebruiken:: slot = Combinatieslot(7) print(slot) # toont 0 slot.roteer(3) print(slot) # toont 3 slot.roteer(5) print(slot) # toont 8 slot.roteer(4) print(slot) # toont niet 12 maar 2 Hint: Je kan de modulo operator gebruiken `%` om ervoor te zorgen dat je na het toevoegen van 4 aan 8 niet 12 hebt maar 2. Opgave ----------- Je moet de class als volgt kunnen gebruiken:: slot = Combinatieslot(7) print(slot) # toont 0 slot.roteer(3) print(slot) # toont 3 slot.open() # toont False slot.roteer(4) print(slot) # toont 7 slot.open() # toont True Opgave ----------- Pas je code aan zodat je een lijst van integers kan meegeven in plaats van een integer:: slot = Combinatieslot([9,2,4]) print(slot) # toont [0, 0, 0] slot.open() # toont False Opgave ----------- Pas je code aan zodat je een lijst van integers kan meegeven in plaats van een integer:: slot = Combinatieslot([9,2,4]) print(slot) # toont [0, 0, 0] slot.roteer(1, 3) print(slot) # toont [0, 3, 0] slot.roteer(1, 2) print(slot) # toont [0, 5, 0] slot.roteer(0, 4) print(slot) # toont [4, 5, 0] slot.open() # toont True