Yes! Always! The keyword is my very best friend in every language!
There's no real reason not to use asserts, they ensure that the basic assumptions I make on input values and states are upheld.
If an assert fails, it means that I need to re-evaluate my assumptions and update the code to handle new exotic input that I did not think of when writing the current revision. What's not to like about that?
As usual in programming, it's a tool that's powerful only when used properly.