首页 > 解决方案 > 反向列表不适用于我的模式?

问题描述

我需要做一个这样的模式:

---------.|.---------
------.|..|..|.------
---.|..|..|..|..|.---
-------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]应该是相反的。

标签: python-3.xstringlistloopsreverse

解决方案


反向列表不适用于我的模式?

您的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)

输出:

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

推荐阅读