def main(): suggested = [] start = 150 end = 2801 quina = QuinaStats('../data/D_QUINA.HTM', start - 1) stat = {'0ac':0, '1ac':0, '2ac':0, '3ac':0, '4ac':0, '5ac':0} if len(sys.argv) < 2 or sys.argv[1] not in ['score', 'most', 'least', 'rand_all', 'rand_one']: print ('Usage : %s [score|most|least|rand_all|rand_one]' % (sys.argv[0],)) return 1 if sys.argv[1] == 'rand_one': # um mesmo numero aleatorio para todos os sorteios result = random_num() method = None if sys.argv[1] == 'score': method = 'Score' if sys.argv[1] == 'most': method = 'Most Recently' if sys.argv[1] == 'least': method = 'Least Recently' for ind in range(start, end): if method: result = quina.suggest_num(method, for_print=False) par = 0 impar = 0 aux_list = [] start = 0 finished = False while not finished: for el in result[start:]: start += 1 if len(aux_list) >= 7: break if utils.isodd(int(el[0])): if impar < 3: aux_list.append(int(el[0])) impar += 1 elif not utils.isodd(int(el[0])): if par < 4: aux_list.append(int(el[0])) par += 1 if sum(aux_list) < 196: menor = min(aux_list) aux_list.remove(menor) if utils.isodd(menor): impar -= 1 else: par -= 1 elif sum(aux_list) > 380: maior = max(aux_list) aux_list.remove(maior) if utils.isodd(maior): impar -= 1 else: par -= 1 else: finished = True result = aux_list[:7] elif sys.argv[1] == 'rand_all': result = random_num() result = result[:7] else: result = result[:7] for each in result: suggested.append(each) quina = QuinaStats('../data/D_QUINA.HTM', ind) dozens = quina.all_content[-1]['Dozens'] doz_aux = [] num_acertos = 0 for doz_elem in dozens: if int(doz_elem) in suggested: doz_aux.append(doz_elem) num_acertos += 1 if num_acertos == 0 : stat['0ac'] += 1 elif num_acertos == 1 : stat['1ac'] += 1 elif num_acertos == 2 : stat['2ac'] += 1 elif num_acertos == 3 : stat['3ac'] += 1 elif num_acertos == 4 : stat['4ac'] += 1 elif num_acertos == 5 : stat['5ac'] += 1 both_value = (sorted(suggested), doz_aux) print (both_value) suggested = [] print(stat)
if __name__ == '__main__': done = False while not done : print ('') print ('\033[92m' + "The following lottery games are available: " + '\033[0m') print ('') print ("quina : show statistics for quina lottery game") print ("mega : show statistics for mega-sena lottery game") print ("facil : show statistics for lotofacil lottery game") print ("done : exit the program") print ('') cmd = raw_input('\033[92m' + 'Choose the game :' + '\033[0m') print ('') if cmd == 'quina': quina = QuinaStats('../data/D_QUINA.HTM') quina.screen_interf() elif cmd == 'mega': sena = SenaStats('../data/d_megasc.htm') sena.screen_interf() elif cmd == 'facil': facil = LotoFacilStats('../data/D_LOTFAC.HTM') facil.screen_interf() elif cmd == 'done' : done = True else : print ("I don't understand the command " + cmd)
def main(): form_data = cgi.FieldStorage() print(yate.start_response()) print(yate.include_header('Estatísticas para Loterias do Brasil')) if not form_data: print(yate.start_form('', 'jogos.py')) print(yate.drop_box('Jogo: ', 'Jogos', {'Quina':'Quina', 'Mega-Sena': 'Mega-Sena', 'LotoFácil':'LotoFácil'}, 'Mega-Sena')) print(yate.drop_box('Estatística: ', 'Estat', { 'doze': 'Dezenas Mais Sorteadas', 'rule': 'Distribuição entre Pares e Impares', 'wors': 'Maior tempo sem ser sorteado', 'more': 'Mais Sorteado', 'aver': 'Média de tempo sem ser sorteado', 'sugs': 'Sugere números com melhor Escore Z', 'sugl': 'Sugere números menos sorteados recentemente', 'sugm': 'Sugere números sorteados recentemente', 'last': 'Última vez sorteado', 'unit': 'Unidades Mais Sorteadas'}, 'more')) print(yate.end_form('Enviar')) elif form_data.getvalue('Jogos') and form_data.getvalue('Estat'): jogo = form_data.getvalue('Jogos') estat = form_data.getvalue('Estat') if jogo == 'Quina': obj = QuinaStats('../data/D_QUINA.HTM') elif jogo == 'Mega-Sena': obj = SenaStats('../data/d_megasc.htm') elif jogo == 'LotoFácil': obj = LotoFacilStats('../data/D_LOTFAC.HTM') else: print(yate.para('Opção Inexistente')) print(yate.include_footer('© LotoEstat 2012')) return if form_data.getvalue('Estat') == 'more': print(yate.header('Números Mais Sorteados')) print(yate.para('Lista decrescente dos números mais sorteados da ' + form_data.getvalue('Jogos') + '.')) to_print = obj.prepare_to_print('More', for_print=False) print(yate.start_tb(['Dezena ', ' Número de Vezes Sorteado'])) for each in to_print: print(yate.inner_tb([each[0],each[1]])) print(yate.end_tb()) elif form_data.getvalue('Estat') == 'rule': print(yate.header('Distribuição entre Pares e Impares')) print(yate.para('Combinação de pares e ímpares entre os números da ' + form_data.getvalue('Jogos') + '.')) to_print = obj.print_rule_even_by_odd(for_print=False) print(yate.start_tb(['Dezenas Pares ', ' Dezenas Ímpares ', ' Número de Vezes Sorteado'])) p = re.compile('\d+') for each in to_print: even, odd = p.findall(each[0]) print(yate.inner_tb([even, odd, each[1]])) print(yate.end_tb()) elif form_data.getvalue('Estat') == 'unit': print(yate.header('Unidades Mais Sorteadas')) print(yate.para('Lista das Unidades mais Sorteadas dos Jogos da ' + form_data.getvalue('Jogos') + '.')) to_print = obj.print_more_often_unit(for_print=False) print(yate.start_tb(['Dezenas terminadas em ', ' Número de Vezes Sorteado'])) p = re.compile('\d+') for each in to_print: unidade = p.findall(each[0]) print(yate.inner_tb([unidade[0], each[1]])) print(yate.end_tb()) elif form_data.getvalue('Estat') == 'doze': print(yate.header('Dezenas Mais Sorteadas')) print(yate.para('Lista das Dezenas mais Sorteadas dos Jogos da ' + form_data.getvalue('Jogos') + '.')) to_print = obj.print_more_often_dozen(for_print=False) print(yate.start_tb(['Dezenas Começadas por ', ' Número de Vezes Sorteado'])) p = re.compile('\d+') for each in to_print: dezena = p.findall(each[0]) print(yate.inner_tb([dezena[0], each[1]])) print(yate.end_tb()) elif form_data.getvalue('Estat') == 'last': print(yate.header('Última vez Sorteado')) print(yate.para('A quanto tempo a dezena não é sorteada entre os números premiados da ' + form_data.getvalue('Jogos') + '.')) to_print = obj.prepare_to_print('Last', for_print=False) print(yate.start_tb(['Dezena ', ' Tempo sem ser sorteada'])) for each in to_print: print(yate.inner_tb([each[0],each[1]])) print(yate.end_tb()) elif form_data.getvalue('Estat') == 'wors': print(yate.header('Maior tempo sem ser sorteado')) print(yate.para('Pior tempo de espera que um número aguardou para ser sorteado entre todos os sorteios da ' + form_data.getvalue('Jogos') + '.')) to_print = obj.prepare_to_print('Worst', for_print=False) print(yate.start_tb(['Dezena ', ' Pior tempo sem ser sorteada'])) for each in to_print: print(yate.inner_tb([each[0],each[1]])) print(yate.end_tb()) elif form_data.getvalue('Estat') == 'aver': print(yate.header('Média de tempo sem ser sorteado')) print(yate.para('Tempo médio que um número leva até ser sorteado, obtidos à partir do histórico de resultados da ' + form_data.getvalue('Jogos') + '.')) to_print = obj.prepare_to_print('Average', for_print=False) print(yate.start_tb(['Dezena ', ' Média de espera entre dois sorteios'])) for each in to_print: print(yate.inner_tb([each[0],each[1]])) print(yate.end_tb()) elif form_data.getvalue('Estat') == 'sugm': print(yate.header('Sugere números sorteados recentemente')) print(yate.para('Ordena os números da ' + form_data.getvalue('Jogos') + ' levando em conta as estatísticas individuais, favorecendo os números que saíram com mais frequencia e que foram sorteados recentemente.')) to_print = obj.suggest_num(method='Most Recently', for_print=False) if form_data.getvalue('Jogos') == 'Quina': dez_sug = 7 elif form_data.getvalue('Jogos') == 'Mega-Sena': dez_sug = 15 elif form_data.getvalue('Jogos') == 'LotoFácil': dez_sug = 15 cabecalho_tabela = [] for num in range(1, dez_sug + 1): cabecalho_tabela.append(str(num) + 'ª dezena') print(yate.start_tb(cabecalho_tabela)) lis = [] for each in to_print[:dez_sug]: lis.append(each[0]) print(yate.inner_tb(lis)) print(yate.end_tb()) elif form_data.getvalue('Estat') == 'sugl': print(yate.header('Sugere números menos sorteados recentemente')) print(yate.para('Ordena os números da ' + form_data.getvalue('Jogos') + ' levando em conta as estatísticas individuais, favorecendo os números que saíram com mais frequencia e que estão a mais tempo sem serem sorteados.')) to_print = obj.suggest_num(method='Least Recently', for_print=False) if form_data.getvalue('Jogos') == 'Quina': dez_sug = 7 elif form_data.getvalue('Jogos') == 'Mega-Sena': dez_sug = 15 elif form_data.getvalue('Jogos') == 'LotoFácil': dez_sug = 15 cabecalho_tabela = [] for num in range(1, dez_sug + 1): cabecalho_tabela.append(str(num) + 'ª dezena') print(yate.start_tb(cabecalho_tabela)) lis = [] for each in to_print[:dez_sug]: lis.append(each[0]) print(yate.inner_tb(lis)) print(yate.end_tb()) elif form_data.getvalue('Estat') == 'sugs': print(yate.header('Sugere números com melhor escore padrão')) print(yate.para('Ordena os números da ' + form_data.getvalue('Jogos') + ' levando em conta o escore padrão de cada um, favorecendo os números com menor desvio padrão da média de tempo de espera para um número ser sorteado.')) to_print = obj.suggest_num(method='Score', for_print=False) if form_data.getvalue('Jogos') == 'Quina': dez_sug = 7 elif form_data.getvalue('Jogos') == 'Mega-Sena': dez_sug = 15 elif form_data.getvalue('Jogos') == 'LotoFácil': dez_sug = 15 cabecalho_tabela = [] for num in range(1, dez_sug + 1): cabecalho_tabela.append(str(num) + 'ª dezena') print(yate.start_tb(cabecalho_tabela)) lis = [] for each in to_print[:dez_sug]: lis.append(each[0]) print(yate.inner_tb(lis)) print(yate.end_tb()) print(yate.header('Atualizado em : %s', header_level=6) % obj.print_updated_data()) else : print(yate.para('Opção por Jogo ou Estatística não efetuada.')) print(yate.include_footer('© LotoEstat 2012'))