Coding for KidsCoding for Kids
Niveluri CreativeProvocăriGhid pentru Profesori
Votează pentru funcții
Curs Avansat de Dezvoltare Python
Capitolul
>
Nivel

Gestionarea Excepțiilor
Excepții personalizate

Obiectiv

Folosește excepții personalizate pentru a colecta mesaje cu comenzi pentru produse și a le trimite prin porumbel mesager.

Unele mesaje sunt distribuite prin fermă și alte stații prin porumbei mesageri, așa că ar fi o idee bună să trimiți câteva pentru a rămâne cu un pas înaintea programului. Am prins erori folosind excepții comune, dar uneori poți beneficia de crearea propriilor excepții personalizate pentru scenarii foarte specifice. Vom procura mesaje și vom selecta porumbei identificând elementele corecte folosind excepțiile noastre personalizate.

Excepțiile personalizate sunt create prin definirea claselor; adăugând clauza (Exception) poți repurposa o clasă pentru a executa excepții. Pentru scopurile noastre vom crea două: InvalidLocation, care este activată atunci când un anumit șir nu trece verificarea, și UnsuitableSelection, care este folosită pentru a verifica dacă un număr depășește o anumită limită.

class InvalidLocation(Exception): "Raised when location is invalid" pass class UnsuitableSelection(Exception): "Raised when pidgeon is 2 or younger" pass

Odată ce clasele au fost setate, este timpul să adunăm notițele ca să poată fi trimise. Creează o listă numită prep pentru a stoca și combina componentele necesare schimbului care urmează. Mergi la semnul X întunecat de pe covorul roșu, pe șirul de mese cu semne X în față vom căuta notițe care conțin comenzi destinate sectorului vest al fermei.

Există patru constante variabile utilizate în acest segment: red_memo, blue_memo, green_memo și orange_memo. Doar notițele marcate pentru a fi livrate în sectorul "west" sunt colectate pentru a fi trimise. Pentru a determina dacă luăm notița sau nu, vom utiliza blocurile de cod try/except și else împreună cu excepția personalizată InvalidLocation. Pentru a utiliza excepția personalizată, la blocul try verifică dacă notița are eticheta "west" și, dacă nu, ridică excepția. Blocul except confirmă că notița este invalidă, iar blocul else colectează și adaugă la lista prep notița dacă se dovedește a fi destinată sectorului "west". De exemplu:

try: if red_memo != "west": raise InvalidLocation except InvalidLocation: player.speak("This is not an order that needs to be sent out") else: player.collect(red_memo) prep.append(red_memo)

Mergi la fiecare semn X întunecat de pe covoarele colorate din fața meselor și rulează secvența de excepții folosind constantele variabile corespunzătoare fiecărei culori.

Odată ce ai colectat notițele, mergi la semnul X auriu din fața ușii și folosește funcția open() pentru a accesa cuiburile de porumbei. Odată ce ești înăuntru, mergi la semnul X luminos, întoarce-te, folosește funcția close() pentru a închide ușa astfel încât să nu scape porumbeii.

Mergi la semnul X întunecat de pe covorul violet, pe pereți vom verifica dacă porumbelul este destul de vechi pentru a transporta un mesaj sau dacă este un pui incapabil să facă o livrare. Există încă patru constante variabile de folosit în acest segment: purple_pen, yellow_pen, white_pen și pink_pen, corespunzătoare fiecărui covor colorat. Vom folosi aceeași tehnică ca la notițe, folosind a doua clasă creată.

Folosește blocurile de cod try/except și else cu excepția personalizată UnsuitableSelection pentru a identifica dacă porumbelul este suficient de vechi pentru a efectua livrarea. Blocul try verifică dacă constanta variabilă care reprezintă pen-ul are un porumbel potrivit prin verificarea dacă pasărea are mai puțin de doi (2) ani. Dacă porumbelul este nepotrivit, se declanșează blocul except, altfel se activează blocul else care îți permite să adaugi un porumbel la lista prep pentru a efectua livrarea mesajului.

try: if purple_pen <= 2: raise UnsuitableSelection except UnsuitableSelection: player.speak("Pigeon unsuitable to deliver") else: prep.append(purple_pen) player.speak("Pigeon Collected")

Mergi la fiecare semn X întunecat de pe covoarele colorate și folosește această secvență cu constantele variabile corecte corespunzătoare fiecărui covor colorat. Odată ce ai colectat porumbeii și notițele, mergi la semnul X auriu de la capătul de jos și folosește funcția place() cu lista prep creată pentru a trimite porumbeii să livreze mesajele și să completeze nivelul.

Carte de Cod