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()