def printa_tabela(cabeçalho, colunas, passo=False, prefixo=' ', linhas_externas=True):
    print()

    cabeçalho = [f' {x} ' for x in cabeçalho]
    colunas = [[f' {x} ' for x in col] for col in colunas]
    # calculando larguras
    larguras = []
    for i,cab in enumerate(cabeçalho):
        M = len(cab)
        for x in  colunas[i]:
            M = max(M, len(x))
        larguras.append(M)
        
    texto_cab = '│'.join([f"{x:^{larguras[i]}}" for i,x in enumerate(cabeçalho)])

    if linhas_externas:
        borda_vertical = '┃'
        print(f"{prefixo}┏{'━'*(len(texto_cab))}┓")
    else:
        borda_vertical = ''
        
    print(prefixo + borda_vertical + texto_cab + borda_vertical)

    sep_cab = '┼'.join([f"{'─'*larguras[i]}" for i,x in enumerate(cabeçalho)])
    print(prefixo + borda_vertical + sep_cab + borda_vertical)

    # agora imprime cada linha da tabela
    for linha,_ in enumerate(colunas[0]):
        texto_linha = '│'.join([f"{coluna[linha]:>{larguras[i]}}" for i,coluna in enumerate(colunas)])
        if not passo:
            print(prefixo + borda_vertical + texto_linha + borda_vertical)
        else:
            print(prefixo + borda_vertical + texto_linha + borda_vertical, end='')
            if(len(input(' '))>0):
                passo = False

    if linhas_externas:
        print(f"{prefixo}┗{'━'*len(texto_cab)}┛")
    print()
