并排打印字母图案

时间:2018-08-29 07:29:11

标签: python python-3.x

我创建了一个函数,该函数将为我提供字母 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()

2 个答案:

答案 0 :(得分:3)

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

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

进行此更改后,您的代码将输出:

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

答案 1 :(得分:1)

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

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