Mario

WFN Üye
Konular
668
Mesajlar
668
Çözüm
0
Ticaret Puanı
0
Üyelik
25 Gün
Konum
Zonguldak
Web Sitesi
Var
Alanı
Google Optimiz.
1/1
Konu sahibi
Python'da bir işlemin sonucunu kontrol etmek için önce döndürülen değeri görün, ardından beklediğiniz değerle karşılaştırın. Tek bir denemede print() yeterli olabilir; aynı kontrolü farklı girdilerle tekrarlamak için test yazmak daha kullanışlıdır. Sonuç beklenenden farklıysa girdiyi, değer türünü ve hata mesajını inceleyerek sorunun hangi adımda ortaya çıktığını belirleyebilirsiniz.

Çıktıyı ve döndürülen değeri kontrol edin​


Bir fonksiyonun döndürdüğü değer ile ekrana yazdırdığı metin aynı şey değildir. return değeri çağıran koda verir; print() ise değeri ekranda gösterir. Örneğin bir fonksiyonun dönüş değerini değişkene atayıp hem değerini hem türünü görebilirsiniz:

Python:
def toplam(a, b):
    return a + b

sonuc = toplam(4, 6)
print("Sonuç:", sonuc)
print("Tür:", type(sonuc).__name__)
print("Beklenen sonuç mu?", sonuc == 10)

Bu örneği kontrol.py adıyla kaydedip terminalde dosyanın bulunduğu dizinden python kontrol.py komutuyla çalıştırın. Ortamınızda komut python3 olabilir. Ekranda sırasıyla Sonuç: 10, Tür: int ve Beklenen sonuç mu? True görünmesi beklenir. True, bu girdiler için sonucun 10'a eşit olduğunu gösterir; fonksiyonun bütün girdilerde doğru çalıştığını kanıtlamaz.

Sonuç None ise fonksiyonun ilgili yürütme yolunda değer döndürüp döndürmediğine bakın. Yalnızca print(a + b) kullanan bir fonksiyon ekrana toplamı yazdırır, ancak açıkça değer döndürmediği için çağrının sonucu None olur. Sonucu başka işlemlerde kullanmak istiyorsanız uygun yerde return kullanın.

Beklenen sonuçları test edin​


Aynı davranışı tekrar tekrar kontrol etmek için Python'un standart kütüphanesindeki unittest modülünü kullanabilirsiniz. Aşağıdaki varsayımsal örneği test_toplam.py adıyla kaydedin:

Python:
import unittest


def toplam(a, b):
    return a + b


class ToplamTesti(unittest.TestCase):
    def test_pozitif_sayilar(self):
        self.assertEqual(toplam(4, 6), 10)

    def test_negatif_sayi(self):
        self.assertEqual(toplam(-3, 1), -2)


if __name__ == "__main__":
    unittest.main()

Terminalde dosyanın bulunduğu dizine geçip python test_toplam.py komutunu çalıştırın. Testler geçerse raporda iki testin çalıştığı ve OK sonucu görülür. FAILED görünürse rapordaki test adını ve beklenen ile gerçek değerleri okuyun; örneğin beklenen değer yanlış yazılmışsa testi, hesaplama yanlışsa fonksiyonu düzeltip yeniden çalıştırın.

Kendi projenizde örnekteki fonksiyon yerine gerçek fonksiyonu uygun modülden içe aktarın. Normal girdilerin yanında sıfır, boş değer veya geçersiz girdi gibi fonksiyonunuzun sözleşmesi açısından önemli durumları da test edin. Geçen testler yalnızca ele alınan durumların beklentilere uyduğunu gösterir.

Hata veya beklenmeyen değerle karşılaşırsanız​


Program karşılaştırmaya ulaşmadan durursa terminaldeki hata dökümünün son satırındaki hata türünü ve mesajını, ardından işaret edilen dosya ve satırı inceleyin. Örneğin TypeError, kullanılan değerlerin ilgili işlem için uygun olmadığını gösterebilir. Girdilerin değerini ve türünü kontrol edin; gerekiyorsa girdiyi uygun biçime dönüştürüp programı tekrar çalıştırın.

Ondalıklı hesaplarda küçük temsil farkları doğrudan eşitlik karşılaştırmasını yanıltabilir. Yaklaşık eşitlik gerekiyorsa math.isclose() kullanın ve kabul edilebilir toleransı işleminize göre belirleyin. Tanılama için geçici çıktı ekliyorsanız parola, anahtar ve kişisel veri yazdırmayın; işiniz bittiğinde bu çıktıları kaldırın.
 

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Foruma git ?

Bu konuyu görüntüleyen kullanıcılar

Bu konuyu şu anda görüntüleyen üye bulunmuyor.
Robotlar:
  • Anthropic