Создание баров на стороне матрица на питоне - PullRequest
0 голосов
/ 02 мая 2018

Я хочу сделать Matriz NXN, но на вертикальных сторонах я хочу поставить "|" но я не могу сделать это с кодом ниже:

def creatematriz(nlines, ncoluns, valor):
    M = []
    for i in range(nlines):
        line = []
        for j in range(ncoluns):
            line.append(valor)
        M.append(line)
    return M
def printMatriz(matriz):
    for line in matriz:
        for position in line:
            print(position, end=" ")
        print("|")
def main():
    m=creatematriz(20,6,'0')
    printMatriz(m)
main()

Я хочу что-то вроде этого:

| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |

Но я получаю только:

 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|

Ответы [ 2 ]

0 голосов
/ 02 мая 2018

Вы также можете сделать это, используя только один цикл и функцию join:

def printMatriz(matriz):
    for line in matriz:
        print("| " + " ".join(line) + " | ")
0 голосов
/ 02 мая 2018

Измените свою функцию printMatriz, чтобы печатать | перед внутренним циклом:

def printMatriz(matriz):
    for line in matriz:
        print("|", end="")
        for position in line:
            print(position, end=" ")
        print("|")
...