try-except ile hata yakalama
Kendi fonksiyonlarını yazarken iyi bir alışkanlık da, başkalarının (ya da senin — yanlışlıkla kendi fonksiyonunu hatalı kullanırsan) tanımladığın fonksiyonu nasıl kullanabileceğini öngörmektir.
Önceki egzersizde gördüğün gibi, len() fonksiyonu string, liste ve demet (tuple) gibi argümanları kabul eder, ancak int tipindekileri etmez ve geçersiz bir girdiyle karşılaştığında uygun bir hata ve hata mesajı verir. Bunu yapmanın yollarından biri de try-except bloğu ile istisna (exception) yönetimidir.
Bu egzersizde bir fonksiyon tanımlayacak ve fonksiyona hatalı girdi argümanları geçirildiğinde durumu yönetmek için bir try-except bloğu kullanacaksın.
Önceki egzersizlerde tanımladığın shout_echo() fonksiyonunu hatırla; fonksiyon tanımının bazı kısımları örnek kodda verilmiştir. Amacın, fonksiyon tanımındaki istisna yakalama kodunu tamamlamak ve bir hata yükseltilirken uygun bir hata mesajı sağlamaktır.
Bu egzersiz, kursun bir parçasıdır
Python'da Fonksiyonlara Giriş
Egzersiz talimatları
echo_wordveshout_wordsdeğişkenlerini boş string olarak başlat.- İstisna yakalama bloğu için uygun yerlere
tryveexceptanahtar kelimelerini ekle. word1'inechokopyalarını birleştirmek için*operatörünü kullan. Sonucuecho_word'a ata.'!!!'string'iniecho_wordile birleştir. Sonucushout_words'a ata.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# 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")