De vorige oefeningen over de ISBN-10 code hadden enkel een hoofdprogramma. In deze oefening wordt een functie toegevoegd om te controleren of de meegegeven parameter een geldige ISBN-10-code voorstelt.
Ter herinnering: indien $$x_1, \ldots, x_9$$ de eerste 9 cijfers van een ISBN-10 code voorstellen, dan wordt het controlecijfer $$x_{10}$$ als volgt berekend: \[x_{10} = (x_1+ 2x_2+ 3x_3+ 4x_4+ 5x_5+ 6x_6+ 7x_7+ 8x_8+ 9x_9)\!\!\!\!\mod{11}\] Het controlecijfer $$x_{10}$$ kan m.a.w. de waarden 0 tot en met 10 aannemen. Indien het controlecijfer gelijk is aan 10, dan wordt dit in de ISBN-10 code genoteerd als de hoofdletter 'X'.
Schrijf een logische functie is_isbn
met één parameter.
De functie moet een Booleaanse waarde
teruggeven, die aangeeft of de parameter een string is die een geldige
ISBN-10 code voorstelt.
De functie moet bovendien extra controles doen op de parameter:
Voeg ook de volledige type hinting toe!
>>> is_isbn('9971502100') True >>> is_isbn('9971502108') False >>> is_isbn('53WKEFF2CX') False >>> is_isbn(4378580136) False
True/False
.
True/False
) teruggeeft.
True
of False
terug.
type(...)
om te zien of een string wordt doorgegeven
type(...)
verwerken?if
:
if type(...) == str
"0123456789"
of gebruik de constante digits
van de
klasse string
.