Текстовая матрица с разделителями ⇐ Python

Программы на Python
Anonymous
Текстовая матрица с разделителями

Сообщение Anonymous »

Я пытаюсь написать скрипт Python, который:
  • Считывает 2 целых числа для ширины и высоты таблицы, используя input('? ')
  • Затем используется input('?') для чтения двух строк символов: одна из шести символов строка для слова и одна строка из двух символов для двух разделителей.
  • Печатает таблицу (с помощью print()) из символы указанного слова, с двумя разделителями, чередующимися между буквами.

    Таблица имеет ширину и высоту (количество строк) в соответствии с указанные два целых числа.
  • Таблица будет заполнена символами указанного шестизначного слова – эти символы будут чередоваться.
  • Разделители будут между символами, но не после последнего символа в строке.

Например, если мы укажем ширину 5, высоту 3, слово «Python» и разделители «+-», мы получим следующий результат:

Код: Выделить всё

?5
?3
?Python
?+-
P+y-t+h-o
n+P-y+t-h
o+n-P+y-t
Проблема в том, что я не могу использовать операторы list и if else для этой задачи. Разрешен только цикл for. Я понятия не имею, как решить эту проблему без использования индексации.

Код: Выделить всё

columns = int(input("?"))
rows = int(input("?"))
word = input("?")
separators = input("?")

separator_index = 0
word_index = 0
for i in range(rows):
for j in range(columns):
if word_index < len(word):
print(word[word_index], end=separators[separator_index])
word_index += 1
separator_index = (separator_index + 1) % len(separators)
else:
word_index = 0
print(word[word_index], end=separators[separator_index])
word_index += 1
separator_index = (separator_index + 1) % len(separators)
print()
Вот как я решил эту проблему, но эта версия не поддерживается по некоторым причинам, которые я описал выше.


Подробнее здесь: https://stackoverflow.com/questions/790 ... separators

Вернуться в «Python»