Обратный список не работает для моего шаблона? - PullRequest
1 голос
/ 22 февраля 2020

Мне нужно сделать такую ​​скороговорку:

---------.|.---------
------.|..|..|.------
---.|..|..|..|..|.---
-------WELCOME-------
---.|..|..|..|..|.---
------.|..|..|.------
---------.|.---------

Проблема в том, что я не могу повернуть вторую часть, которая совпадает с только что перевернутой первой частью.

Вот мой код:

for i in range(n // 2):
   pattern = [('.|.' * (2 * i + 1)).center(m, '-')]
   print('\n'.join(pattern))

print('WELCOME'.center(m, '-'))

for i in range(n // 2):
   pattern = [('.|.' * (2 * i + 1)).center(m, '-')]
   print('\n'.join(pattern[::-1]))

pattern[::-1] должен быть обратным.

1 Ответ

0 голосов
/ 22 февраля 2020

Обратный список не работает для моего шаблона?

Ваш pattern список содержит только один элемент, поэтому обратный список будет тем же списком


чтобы напечатать вторую часть вашего вывода в зеркале, вы должны напечатать от последней строки (как было в первой части) до первой строки:

n = 10
m = 10
base_str = '.|.'
for i in range(n // 2):
    pattern = (base_str * (2 * i + 1)).center(m * len(base_str), '-')
    print(pattern)

print('WELCOME'.center(m * len(base_str), '-'))

for i in range(n // 2 - 1, -1, -1):
    pattern = (base_str * (2 * i + 1)).center(m * len(base_str), '-')
    print(pattern)

output:

-------------.|.--------------
----------.|..|..|.-----------
-------.|..|..|..|..|.--------
----.|..|..|..|..|..|..|.-----
-.|..|..|..|..|..|..|..|..|.--
-----------WELCOME------------
-.|..|..|..|..|..|..|..|..|.--
----.|..|..|..|..|..|..|.-----
-------.|..|..|..|..|.--------
----------.|..|..|.-----------
-------------.|.--------------
...