Как связать переменные i и result в функции range?

Нужна функция, которая возводит в квадрат ряд чисел и возвращает результат в виде:

# => square of 1 is 1
# => square of 2 is 4
# => square of 3 is 9

Я застрял здесь:

def f(start, end):
    end = end + 1

    for i in range(start, end):
        count = start ** 2
        result = f'{'square of'} {str(start)} {'is'} {str(count)}'

    return result

print(f(start=1, end=3))

Не получается связать переменные i и result.


Ответы (2 шт):

Автор решения: S. Nick

Как вариант:

def f(start, end):
    end = end + 1
    result = ''                                               # +++

    for i in range(start, end):
#        count = start ** 2
#        result = f'square of {str(start)} is {str(count)}'
        count = i ** 2                                        # + i
        result += f'square of {i} is {str(count)}\n'          # + += / i / \n

    return result

print(f(start=1, end=3))
→ Ссылка
Автор решения: Zhihar

как вариант:

f = lambda s, e: '\n'.join(f'square of {i} is {i*i}' for i in range(s, e + 1))
→ Ссылка