repr - образ объекта, теоретически помогает при отладке, ни разу в жизни этим не пользовался str - строка, само собой понятно, плюч всегда возвращает текст
не совсем. пример - ты автомеханик и у тебя есть набор ключей 8-10-12-14-17-21-24-27-30(формат стр, которым ты пользуешься часто и он тебя во всем устраивает) Приезжает клиент и у него в автомобиле гайки на 15. Вот в этой ситуации ты поймешь зачем нужен repr
есть языки со строгой типизацией - если объект имеет перья, перепонки на лапах, голос объекта == 'кря', то это утка это в основном, компилируемые языки, например С++ есть языки с динамической типизацией - если объект плавет как утка, крякает как утка, летает как утка, то это утка это интерпретируемые языки, например Python