Gestionarea erorilor cu try-except
O bună practică atunci când îți scrii propriile funcții este să anticipezi și modalitățile în care alți utilizatori (sau chiar tu, dacă folosești accidental greșit funcția proprie) ar putea apela funcția pe care ai definit-o.
Ca în exercițiul anterior, ai văzut că funcția len() poate gestiona argumente de tip șir de caractere, liste și tupluri, dar nu și argumente de tip int — și că generează o eroare și un mesaj de eroare corespunzătoare atunci când primește argumente invalide. O modalitate de a face acest lucru este prin gestionarea excepțiilor cu blocul try-except.
În acest exercițiu, vei defini o funcție și vei folosi un bloc try-except pentru a gestiona situațiile în care funcției i se transmit argumente incorecte.
Amintește-ți funcția shout_echo() pe care ai definit-o în exercițiile anterioare; părți din definiția funcției sunt furnizate în codul exemplu. Obiectivul tău este să completezi codul de gestionare a excepțiilor din definiția funcției și să furnizezi un mesaj de eroare adecvat atunci când este generată o eroare.
Acest exercițiu face parte din cursul
Introducere în funcții în Python
Instrucțiuni pentru exercițiu
- Inițializează variabilele
echo_wordșishout_wordscu șiruri de caractere goale. - Adaugă cuvintele cheie
tryșiexceptîn locurile potrivite din blocul de gestionare a excepțiilor. - Folosește operatorul
*pentru a concatenaechocopii ale luiword1. Atribuie rezultatul variabileiecho_word. - Concatenează șirul de caractere
'!!!'laecho_word. Atribuie rezultatul variabileishout_words.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# Define shout_echo
def shout_echo(word1, echo=1):
"""Concatenate echo copies of word1 and three
exclamation marks at the end of the string."""
# Initialize empty strings: echo_word, shout_words
# Add exception handling with try-except
____:
# Concatenate echo copies of word1 using *: echo_word
echo_word = ____
# Concatenate '!!!' to echo_word: shout_words
shout_words = ____
____:
# Print error message
print("word1 must be a string and echo must be an integer.")
# Return shout_words
return shout_words
# Call shout_echo
shout_echo("particle", echo="accelerator")