import re
def stp(s):
    p = re.compile(r'(Иван\b)(?!.?[А-Я]|[-])')
    rep = 'Степан'
    return p.sub(rep, s)
arr = ["Поди сюда, Иван.", "Иван Грозный", "Город Иваново","Иван, просто Иван",
       "Иван-да-Марья", "Петр Иваныч", "Марья, Иван, Пётр", "Иван-дурак"]
print(list(map(lambda x : stp(x), arr)))