try-except ile hata işleme
Kendi fonksiyonlarınızı yazarken iyi bir uygulama da, tanımladığınız fonksiyonu başkalarının (veya yanlışlıkla kendi fonksiyonunuzu yanlış kullanırsanız kendinizin) nasıl kullanabileceğini tahmin etmektir.
Önceki alıştırmada olduğu gibi, len() fonksiyonunun dizeler, listeler ve tuple'lar gibi girdi argümanlarını işleyebildiğini, ancak int türünde olanları işleyemediğini ve geçersiz girdi argümanlarıyla karşılaştığında uygun bir hata ve hata mesajı verdiğini gördünüz. Bunu yapmanın bir yolu, try-except bloğu ile istisna işleme yöntemidir.
Bu alıştırmada, bir fonksiyon tanımlayacak ve fonksiyona yanlış girdi argümanları aktarıldığı durumları ele almak için bir try-except bloğu kullanacaksınız.
Önceki alıştırmalarda tanımladığınız shout_echo() işlevini hatırlayın; işlev tanımının bazı kısımları örnek kodda verilmiştir. Amacınız, işlev tanımındaki istisna işleme kodunu tamamlamak ve bir hata oluştuğunda uygun bir hata mesajı sağlamaktır.
Bu egzersiz
Python'da Fonksiyonlara Giriş
kursunun bir parçasıdırEgzersiz talimatları
echo_wordveshout_wordsdeğişkenlerini boş dizelere başlatın.- İstisna işleme bloğu için uygun konumlara
tryveexceptanahtar sözcüklerini ekleyin. echokopyalarınıword1ile birleştirmek için*işlecini kullanın. Sonucuecho_wordadresine atayın.'!!!'dizesiniecho_wordile birleştirin. Sonucushout_wordsadresine atayın.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# 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")