Вывести слово в рамку из звездочек Python
Не могу понять в чём у меня ошибка. Задание следующее:
Создайте программу, которая запрашивает у пользователя слово и выводит слово в звездочках со словом посередине. Ширина рамок составляет 30 знаков, и вы можете предположить, что слово поместится в рамки.
Примечание! Если слово нечетной длины, вы можете напечатать слово в любом из возможных центров.
Мой код :
a = input("word: ")
b=30
print("*" * b)
if len(a) <= b:
print("*", " " * (b//2 -len(a)) + a," " * (b//2 - len(a)), "*")
print("*" * b)
Выводит как то неправильно...Спасибо...
Ответы (2 шт):
Автор решения: entithat
→ Ссылка
s = input('Word: ')
w = int(input('Width: '))
print('*' * w + '\n' + '*' + s.center(w-2) + '*' + '\n' + '*' * w)
# либо
print(f"{'*'*w}\n*{s.center(w-2)}*\n{'*'*w}")
Автор решения: Andy Pavlov
→ Ссылка
Можно в одну строку вывести через join и format
s = 'example'
w = 30
print('\n'.join(['*' * w, '*{:^{wid}}*'.format(s, wid=w-2), '*' * w]))
