Όχι είναι διαφορετικές. Η assert μπορεί να κάνει raise ένα exception αλλά όχι απαραιτήτως. Η raise κάνει πάντα raise το Exception που θα της πεις. Αυτό όσον αφορά την λειτουργία τους (όχι τη χρήση τους)
Googl-αρε για την assert και θα μάθεις περισσότερα. Πχ:
stackoverflow.com/questions/5142418/what...-of-assert-in-python
Εν γένει, να χρησιμοποιείς την assert μόνο όταν γράφεις tests. Όταν θες να κάνεις raise ένα exception στον κώδικά σου να το κάνεις explicitly. Δηλαδή:
if condition_that_requires_raising_a_ValueError:
raise ValueError("message explaining the condition")
edit
Διάβασε και τη δεύτερη απάντηση εδώ (που είναι μάλλον και η πραγματική σου απορία):
stackoverflow.com/questions/944592/best-...rt?noredirect=1&lq=1Asserts should be used to test conditions that should never happen. The purpose is to crash early in the case of a corrupt program state.
Exceptions should be used for errors that can conceivably happen, and you should almost always create your own Exception classes.