#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: выражение не может содержать присваивание, возможно, вы имели в виду «==»? »