Python Печать заданного слова в форме прямоугольника

#python

#python

Вопрос:

В настоящее время я занимаюсь вопросом, который я не уверен, как решить. Мне требуется распечатать следующий вывод с использованием циклов for Это всего лишь пример, поскольку он должен иметь возможность отображать любую введенную строку

  computer 
e        e
m        m
u        u
 computer 
 

Я придумал следующий код, чтобы попытаться распечатать этот пример

 #ask user to enter the base word
user_input = input("Enter base word: ")
base_word = user_input

#ask user to enter the side word
user_input = input("Enter side word: ")
side_word = user_input

i=0

print(" "   base_word   " ")
for i in range(0, len(side_word)):
 # get the ith character
 letter = side_word[i]
 # display the ith character

print("-{0}{1:>{,len(base_word)}} ".format(letter ,"-",len(base_word) == len(base_word)-len(letter)-1))
print(" "   base_word   " ")
 

Однако, когда я запускаю этот код, я получаю следующую ошибку

 Traceback (most recent call last):
  File "<string>", line 17, in <module>
KeyError: ',len(base_word)'
 

строка 17, являющаяся print("-{0}{1:>{,len(base_word)}} ".format(letter ,"-",len(base_word) == len(base_word)-len(letter)-1))

Я попытался заменить == операторы на = , однако я все еще получаю ошибку в виде

 SyntaxError: expression cannot contain assignment, perhaps you meant "=="?
 

Ответ №1:

Я думаю, что это будет работать для вашего желаемого результата и не нужно использовать форматирование. Еще проще.

 #ask user to enter the base word
user_input = input("Enter base word: ")
base_word = user_input

#ask user to enter the side word
user_input = input("Enter side word: ")
side_word = user_input

print(" "   base_word   " ")
for i in range(0, len(side_word)):
 print(side_word[i] " "*len(base_word) side_word[i])


print(" "   base_word   " ")
 

Ответ №2:

 #ask user to enter the base word
user_input = input("Enter base word: ")
base_word = user_input

#ask user to enter the side word
user_input = input("Enter side word: ")
side_word = user_input

print(" "   base_word   " ")

for c in side_word:
    print(c, end='')
    for _ in base_word:
        print(' ', end='')
    print(c)

print(" "   base_word   " ")
 

Ответ №3:

 print("-{0}{1:>{,len(base_word)}} ".format(letter ,"-",len(base_word) == len(base_word)-len(letter)-1))
 

== является ли сравнение таким, чтобы оно обычно возвращало True или False , если вы хотите использовать аргумент ключевого слова в .format use single = .
Обратите внимание, что используемое имя должно быть законным именем переменной, чтобы работать, len( ) что вызов функции не является, попробуйте заменить len(base_word) с помощью, например len_base_word .

Комментарии:

1. Это было в моем первоначальном ответе, но когда я его запустил, я получил эту ошибку «SyntaxError: выражение не может содержать присваивание, возможно, вы имели в виду «==»? »