Gerador de PIS/PASEP em Python
Publicado por danilo (última atualização em 05/12/2012)
[ Hits: 15.173 ]
Homepage: www.vivaolinux.com.br
Função em Python para gerar um número do PIS/PASEP válido.
#!/usr/bin/env python # -*- coding: utf-8 -*- import string from random import randint ''' * Essa função um número de Pispasep válido. * @param {Boolean} formatar define se o número do PISPASEP deve ser gerado com o hífen. * @return {String} PISPASEP * * Regra de Formação: * PIS/PASEP - O dígito verificador do PIS/PASEP é calculado através da seguinte regra: * o número é composto por dez dígitos mais um dígito verificador. Multiplique os números, da esquerda para a direita, * respectivamente por 3 2 9 8 7 6 5 4 3 2. Some os resultados das multiplicações; calcule o resto da divisão da soma por 11 * e subtraia o resultado de 11. Se o resultado for 10 ou 11 o dígito é zero, caso contrário o dígito é o próprio resultado. * * Por exemplo, para o número 1701209041-1, o cálculo seria: * 1x3 + 7x2 + 0x9 + 1x8 + 2x7 + 0x6 + 9x5 + 0x4 + 4x3 + 1x2 = 98. O resto da divisão de 98 por 11 é 10. Como 11 - 10 = 1, o dígito é 1. * * Ex: 5936677542-1 * ''' def geradorDePisPasep( formatar ): # 9 números aleatórios arNumeros = [] for i in range(10): arNumeros.append( randint(0,9) ) # Calculado DV somaJ = ( arNumeros[0] * 3 ) + ( arNumeros[1] * 2 ) + ( arNumeros[2] * 9 ) + ( arNumeros[3] * 8 ) + ( arNumeros[4] * 7 ) + ( arNumeros[5] * 6 ) + ( arNumeros[6] * 5 ) + ( arNumeros[7] * 4 ) + ( arNumeros[8] * 3 ) + ( arNumeros[9] * 2 ) restoJ = somaJ % 11 subtracao = 11 - restoJ if ( subtracao == 10 or subtracao == 11 ): j = 0 else: j = subtracao arNumeros.append( j ) pis = ''.join(str(x) for x in arNumeros) if formatar: return pis[ :10 ] + '-' + pis[ 10: ] else: return pis
Nenhum coment�rio foi encontrado.
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Atualizar Debian Online de uma Versão para outra
Instalar driver Nvidia no Debian 13
Redimensionando, espelhando, convertendo e rotacionando imagens com script
Debian 13 Trixie para Iniciantes
Convertendo pacotes DEB que usam ZSTD (Padrão Novo) para XZ (Padrão Antigo)
Debian 13 "trixie&... lançado! (44)
Rust é o "C da nossa geração"? (3)
Gerenciador de arquivos é finalizado ao abrir pasta específica (2)