Держи свой ковёр. Ожидается, что n не меньше 2. Если нужно для n = 0, n = 1, то добавь условный оператор, там всё тривиально.
n = int(input()) side = '#' * n print(side) for k in range(1, n - 1): print(''.join('#' if i in {0, k, n - 1 - k, n - 1} else ' ' for i in range(n))) print(side)