def printa_tabela(cabeçalho, colunas, passo=False): print() # calculando larguras larguras = [] for i,cab in enumerate(cabeçalho): M = len(cab) for x in colunas[i]: M = max(M, len(str(x))) larguras.append(M) texto_cab = ' ' + ' │ '.join([f"{x:^{larguras[i]}}" for i,x in enumerate(cabeçalho)]) print(texto_cab) sep_cab = ' ' + '─┼─'.join([f"{'─'*larguras[i]}" for i,x in enumerate(cabeçalho)]) print(sep_cab) # vamos preencher as colunas com '-' para que todas fiquem com o mesmo tamanho compr_max = max(len(col) for col in colunas) for col in colunas: col.extend(['-']*(compr_max - len(col))) # 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(texto_linha) else: print(texto_linha, end='') input(' ') print() def gera_a_b(n=3): return randrange(10**n, 10**(n+1)), randrange(10**n, 10**(n+1))