#1
def line(N): #(1.1)
for i in range(2): # (1.2)
print('-'*N) #(1.3)
line(int(input())) # (1.4)
end = input()
#2
def Draw(N): # (1.1)
print('*' * N) # (2.1)
print("*{}*".format(" "*(N-2))) # (2.2)
print('*' * N) # (2.1)
Draw(int(input())) #
#3
def Draw(N): #1.1
print('*' * N) #2.1
for i in range(N-2): #3.1
print("*{}*".format(" "*(N-2))) #2.1
print('*' * N) #2.1
Draw(int(input())) #2.1
Пояснения к коду:
Маркер 1.1 - Объявление функции
Маркер 1.2 - Цикл, 2 раза повторяющий следующую ниже операцию
Маркер 1.3 - Выведение строки, состоящей из N числа символов "-"
Маркер 1.4 - Вызов функции, где в качестве аргумента передаётся вводимео с клавиатуры целое число
Маркер 2.1 - Выведение строки, состоящей из N-ног числа звёздочек
Маркер 2.2 - Выведение строки, состоящей из звёздочек по краям. Метод format позволяет подставить вместо фигурных скобок то, что передаётся в качестве аргумента методу format. Аргумент - переменная или выражение в скобочках, то есть .format(Аргумент)
Маркер 3.1 - Цикл, рисующий строку с пробелами (с.м маркер 2.2)
АХТУНГ! НЕ копируй код с сайта, ибо нарушаются табуляции (отступы. Питон очень не любит, когда нарушаются отступы) и программы потом не работают. Лучше попытаться понять, как оно работает, и воссоздать самому(ой), для себя же полезнее. Код протестирован, пояснения желательны к ознакомлению.