Dein Freund Yaʻqūb steht hinter der Theke im belebtesten Feinkostladen der Stadt und schneidet, wiegt und verpackt Bestellungen für eine nie endende Schlange hungriger Kunden. Damit alles zügig vorangeht, zieht jeder Kunde bei der Ankunft ein nummeriertes Ticket.
Wenn es Zeit ist, die nächste Person aufzurufen, liest Yaʻqūb deren Nummer laut vor, immer in ausgeschriebenen englischen Wörtern, damit alle sie klar hören.
Du bekommst eine Zahl. Deine Aufgabe ist es, sie in englische Wörter zu fassen, genau so, wie dein Freund sie laut sagen würde. Yaʻqūb rechnet mit Zahlen von 0 bis 999,999,999,999.
Beispiele:
Manchmal ist es notwendig, eine Exception auszulösen. Wenn du das tust, solltest du immer eine aussagekräftige Fehlermeldung angeben, die verrät, woher der Fehler kommt. Das macht deinen Code lesbarer und hilft beim Debuggen erheblich. Wenn du weißt, dass die Fehlerquelle von einem bestimmten Typ ist, kannst du einen der eingebauten Fehlertypen auslösen, solltest aber trotzdem eine aussagekräftige Meldung mitgeben.
Diese Übung verlangt, dass du die raise-Anweisung verwendest, um einen ValueError zu „werfen“, wenn die an say() übergebene Zahl außerhalb des gültigen Bereichs liegt. Die Tests bestehen nur, wenn du die exception sowohl mit raise auslöst als auch eine Meldung mitgibst.
Um einen ValueError mit einer Meldung auszulösen, gibst du die Meldung als Argument an den exception-Typ:
# if the number is negative
raise ValueError("input out of range")
# if the number is larger than 999,999,999,999
raise ValueError("input out of range")
Melde dich bei Exercism an, um Python mit 17 Konzepte146 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.