并排打印放大的 ASCII 字母模式



我创建了一个函数,它将给我一个字母K的放大字母模式。 我创建了另一个函数来打印图案。我想并排打印两个模式K,但是当我执行代码时,它会打印第一个模式下方的第二个模式

我该如何解决这个问题?

def letter_k(pattern):
k = ''
for row in range(7):
for col in range(6):
if((col == 0) or ((row == 0 or row == 6) and (col == 5)) 
or ((row == 1 or row == 5) and (col == 4)) 
or ((row == 2 or row == 4) and (col == 3)) 
or ((row == 3) and (col == 2))):
k = k + pattern
else:
k = k + ' '
k = k + 'n'
return k
def name():
print(letter_k('*'),letter_k('+'))
name()

您可以将两个调用的输出拆分为letter_kzip它们,然后重新加入它们:

def name():
print('n'.join(' '.join(l) for l in zip(letter_k('*').split('n'), letter_k('+').split('n'))))

通过此更改,您的代码将输出:

*    * +    +
*   *  +   + 
*  *   +  +  
* *    + +   
*  *   +  +  
*   *  +   + 
*    * +    +

要并排打印字母,您必须连接各个行。这通常意味着拆分线条,连接相应的线条,然后将组合的线条重新组合在一起。您的字母位于矩形块中会有所帮助,因此您不必计算每行的填充。

k1 = letter_k('*')
k2 = letter_k('+')
lines = [' '.join(rows) for rows in zip(k1.splitlines(), k2.splitlines())]
ks = 'n'.join(lines)
print(ks)

这是一个 IDEOne 链接:https://ideone.com/OQStFd

最新更新