Вы можете умножить строку."*" * 10
== '**********'
- тогда вам не нужен внутренний цикл for
.
Кроме того, вам нужно распечатать вещь в том виде, в каком она должна быть, а не делать границы сначала - вы можете 'просто наберите то, что уже напечатано.
def function(text):
"""start"""
name_length = len(text) #renamed your variable, the name was confusing
num = int(input())
for i in range(num):
if i == 0 or i == num - 1: #removed inner loop
print("*" * (name_length+2))
else:
print("*{}*".format(text) #added printing the text and right border
function(input())
Вы не сказали, что должно произойти для большего числа.Я предположил, что имя должно быть повторено.