там рассказывать нечего. флаги хранят два значения - ложь/истина, допустим нам нужно проверить есть ли в массиве элемент. мы можем в начале предположить, что элемента в массиве нет и создать флаг со значением False, а после в цикле проверять каждый элемент и если найдём нужный - поменяем значение на True.
с счётчиками всё ещё проще, допустим считаем количество двоек в числе, значит создаём переменную, кладём в неё ноль и бежим по числу. каждый раз встречая двойку, увеличиваем значение счётчика на один. вот и всё