Вывести на экран квадрат из звёздочек

Как можно сделать квадрат из звёздочек, где стороны квадрата будут равны вводимому числу, но внутри он должен быть пустым?
Желаемый результат:

Вход: 3 
Выход:
***
* *
***

Вход: 4
Выход:
****
*  *
*  *
****

Мой код, выводящий заполненный квадрат

n = int(input())
for i in range(n):
    for j in range(n):
        print("*", end = "\t")
    print()

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

Автор решения: MBo

Разберёмся, что именно нужно печатать.
В первой и в последней строках нужно вывести n звёздочек, это можно сделать так, как вы делали - в цикле - но проще использовать строковый оператор умножения: "*" * n формирует строку из n символов.
А между этими строками нужно создать и вывести строки, состоящие из левой и правой звёздочек, а между ними - (n-2) пробелов:

n = int(input())
print("*" * n)
for i in range(n - 2):
    print("*" + " " * (n - 2) + "*")
print("*" * n)
→ Ссылка