Ο φίλος σου Yaʻqūb δουλεύει στον πάγκο του πιο πολυσύχναστου ντελικατέσεν της πόλης, κόβοντας, ζυγίζοντας και τυλίγοντας παραγγελίες για μια ατελείωτη ουρά πεινασμένων πελατών. Για να κυλάει γρήγορα η εξυπηρέτηση, κάθε πελάτης παίρνει ένα αριθμημένο χαρτάκι όταν φτάνει.
Όταν έρχεται η ώρα να φωνάξει τον επόμενο πελάτη, ο Yaʻqūb διαβάζει τον αριθμό του δυνατά, πάντα ολογράφως στα αγγλικά, για να σιγουρευτεί πως όλοι τον ακούν καθαρά.
Δεδομένου ενός αριθμού, το καθήκον σου είναι να τον εκφράσεις με αγγλικές λέξεις, ακριβώς όπως θα τον έλεγε δυνατά ο φίλος σου. Ο Yaʻqūb περιμένει να χρησιμοποιήσει αριθμούς από το 0 έως το 999,999,999,999.
Παραδείγματα:
Μερικές φορές είναι απαραίτητο να πετάξεις μια εξαίρεση. Όταν το κάνεις, θα πρέπει πάντα να συμπεριλαμβάνεις ένα κατατοπιστικό μήνυμα σφάλματος που να δείχνει ποια είναι η πηγή του σφάλματος. Αυτό κάνει τον κώδικά σου πιο ευανάγνωστο και βοηθάει σημαντικά στο debugging. Σε περιπτώσεις όπου ξέρεις ότι η πηγή του σφάλματος θα είναι ενός συγκεκριμένου τύπου, μπορείς να επιλέξεις να πετάξεις έναν από τους ενσωματωμένους τύπους σφαλμάτων, αλλά και πάλι θα πρέπει να συμπεριλάβεις ένα κατατοπιστικό μήνυμα.
Αυτή η συγκεκριμένη άσκηση απαιτεί να χρησιμοποιήσεις την εντολή raise για να "πετάξεις" ένα ValueError αν ο αριθμός που δίνεται στη say() είναι εκτός εύρους. Τα τεστ θα περάσουν μόνο αν και κάνεις raise την exception και συμπεριλάβεις ένα μήνυμα μαζί της.
Για να πετάξεις ένα ValueError με μήνυμα, γράψε το μήνυμα ως όρισμα στον τύπο exception:
# 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")
Γράψου στο Exercism για να μάθεις και να κατακτήσεις Python με 17 έννοιες146 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.