def row(chislo, stepen):
    #определяем функцию внутри, чтобы передать ей собственный аргумент result, который по дефолту равен chislo
    #этот аргумент мы используем, как контейнер для результата
    def under_row(chislo, stepen, result):
        
        
        if stepen == 1:
            return result

        #результат = изначальное число(потом равен сам_себе)*изначальное число
        #result = 2*2
        #resul = 4*2
        #result = 8*2 и т.д.
        result = result*chislo

        print("Число: ", result)
        print("Степень ", stepen)
        #рекурсивно вызываем фунцию, уменьшая stepen (происходит внутри функции under_row)
        under_row(chislo, (stepen-1), result)
        
    #final = результат выполнения under_row (происходит внутри функции row)
    return under_row(chislo, stepen, chislo)
    




result = row(2,5)
print(result)
