Em primeiro lugar eu queria dizer que títulos de capitalização são a maior safadeza já inventada. É a típica parceria Caracu, onde o Banco entra com a cara.
Tendo dito isto, talvez você não saiba como é feito o sorteio dos tais prêmios. Um infeliz amigo que foi obrigado pelo seu gerente a fazer um título de capitalização pediu um help ontem e coloco abaixo a forma como resolvi.
Vamos às regras do título de capitalização do Banco Maldito (você sabe qual é):
- Só valem os sorteios da Loteria Federal feitos no último sábado do mês.
- Se o mês for Março, Junho, Setembro ou Dezembro vão ser escolhidos dois números. Um tradicional e outro especial.
- O número tradicional é formado pela dezena simples e unidade simples do primeiro prêmio da loteria federal e pela unidade simples do 2o, 3o, 4o e 5o prêmios da loteria federal.
- No caso do sorteio especial o segundo número é formado pela centena simples do primeiro prêmio da loteria federal e pela dezena simples do 1o, 2o, 3o, 4o e 5o prêmio.
Para resolver você precisa de uma tabela de resultados da loteria federal que pode ser conseguida aqui: http://www1.caixa.gov.br/loterias/loterias/federal/download.asp
Com isto em mãos e o programa em Python que vai abaixo você resolve seu problema. (obviamente os mestres de Python que leem o blog terão soluções melhores).
Mas o melhor conselho é *nunca* fazer título de capitalização.
#!/usr/bin/env python import urllib import time import calendar from bs4 import BeautifulSoup fhtml = open("D_LOTFED.HTM").read() soup = BeautifulSoup(fhtml) meus_numeros = [ 394465,558487, 572418,640294, 439592,329068, 368570,765895, 023206,847826] l = [] for i in soup.table.tbody.findAll("tr"): a = [] for k in i.findAll("td"): a.append(k.text) l.append(a) def modalidadeMensal (a1): return int(a1[2][3:]+a1[3][4]+a1[4][4]+a1[5][4]+a1[6][4]) def modalidadeEspecial(a1): return int(a1[2][2:3]+a1[3][3]+a1[4][3]+a1[5][3]+a1[6][3]) def isLastSaturday(st): tupl = time.strptime(st,"%d/%m/%Y") if tupl[6]==5: if ((tupl[2])+7) > calendar.monthrange(tupl[0],tupl[1])[1]: return True return False def isEspecial(st): if (isLastSaturday(st)): tupl = time.strptime(st,"%d/%m/%Y") if tupl[1] in [3,6,9,12]: return True return False for i in l[1:]: if isLastSaturday(i[1]): print i[0],i[1],modalidadeMensal(i) if modalidadeMensal(i) in meus_numeros: print i if isEspecial(i[1]): print "*",i[0],i[1],%modalidadeEspecial(i) if modalidadeEspecial(i) in meus_numeros: print i |