Python assert ile raise ın farkı nedir?Hangi durumlarda assert kullanmalıyım?

liste = ["a","b","c"]
assert "d" in liste,"Bir hata olustu"

def deneme(sayi):
    if type(sayi) == str:
        raise ValueError("Lütfen string girmeyiniz")


Bu ikiside hata ayıklmaya yarıyor.Ben aralarındaki farkı tam anlayamadım.Açıklar mısınz?

Bir tanesi liste'de "d" yoksa hata veriyor, digeri verilen parametre str degilse. Farklarini incelemek icin oncelikle ayni sartlar altinda kullanmayi deneyebilirsin.

Forumda assert ile ilgili yazilmis bir suru sey var, buraya tekrar etmeyecegim.

Hayir, raise hata vermek icin kullaniliyor. Ayiklamaya yaramak zorunda degil, hatta tam tersi ayiklanamayan hatalar icin daha kullanisli.