renix1

mega sena with python 3.x and sqlite3

Feb 3rd, 2017
218
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.86 KB | None | 0 0
  1. #! /usr/bin/env python3
  2. # coding: utf-8
  3.  
  4. from random import randint
  5. from hashlib import md5
  6. from os import path
  7. from sys import exit
  8. from datetime import datetime
  9. from time import time
  10. import sqlite3
  11.  
  12.  
  13. def create_db():
  14.     print("\nCriando db...")
  15.     if not path.exists('resultado.db'):
  16.         conn = sqlite3.connect('resultado.db')
  17.         conn.close()
  18.         return True
  19.     else:
  20.         return True
  21.  
  22. def create_log():
  23.     if create_db():
  24.         try:
  25.             print("\nSe conectando ao db...")
  26.             conn = sqlite3.connect('resultado.db')
  27.             cur = conn.cursor()
  28.             cur.execute("CREATE TABLE sorteios \
  29.            (id INTEGER PRIMARY KEY AUTOINCREMENT, \
  30.            nums_sorteio TEXT, \
  31.            data DATE, \
  32.            ganhador TEXT)")
  33.             conn.close()
  34.             return True
  35.         except sqlite3.OperationalError:
  36.             return True
  37.     else:
  38.         return False
  39.  
  40. def ler_sorteios():
  41.     print("Lendo sorteios anteriores...")
  42.     if path.exists('resultado.db'):
  43.         conn = sqlite3.connect('resultado.db')
  44.         cur = conn.cursor()
  45.         sql = 'SELECT * FROM sorteios'
  46.         for row in cur.execute(sql):
  47.             if len(row) > 2:
  48.                 print("Sorteio %d (%s) em %s, o ganhador foi \"%s\"." % (row[0], row[1], row[2], row[3]))
  49.             else:
  50.                 print("Sorteio %d (%s) em %s, ninguém ganhou." % (row[0], row[1], row[2]))
  51.         print("")
  52.     else:
  53.         print("Não há db para ler\n")
  54.  
  55. def alterar_sorteio():
  56.     if path.exists('resultado.db'):
  57.         conn = sqlite3.connect('resultado.db')
  58.         cur = conn.cursor()
  59.         nums = str(mega_sena_nums())
  60.         sorteio = int(input("Sorteio: "))
  61.         cur.execute("UPDATE sorteios SET nums_sorteio = ? WHERE id = ?", (nums, sorteio))
  62.         conn.commit()
  63.         print("Dados atualizados com sucesso!\n")
  64.         conn.close()
  65.     else:
  66.         print("Não há o que alterar\n")
  67.  
  68. def entrar_values(nums_sorteio, ganhador=''):
  69.     if create_log():
  70.         if len(ganhador) <= 1:
  71.             ganhador = 'ninguém'
  72.         else:
  73.             print('Nome do ganhador:', ganhador)
  74.         data = str(datetime.fromtimestamp(int(time())).strftime('%d/%m/%Y'))
  75.         conn = sqlite3.connect('resultado.db')
  76.         cur = conn.cursor()
  77.         cur.execute("INSERT INTO sorteios \
  78.        (nums_sorteio, data, ganhador) \
  79.        VALUES(?, ?, ?)", (nums_sorteio, data, ganhador))
  80.         conn.commit()
  81.         print("Dados inseridos no db\n")
  82.         conn.close()
  83.     else:
  84.         print("Entrada de dados falhou\n")
  85.         exit(1)
  86.  
  87. def vef_hash(nums):
  88.     nums = str(nums).encode('utf-8')
  89.     if len(nums) > 1:
  90.         m = md5()
  91.         m.update(nums)
  92.         return m.digest()
  93.     else:
  94.         return 0
  95.  
  96. def mega_sena_nums():
  97.     list_numbers = []
  98.     for _ in range(1, 6):
  99.         x = randint(0, 99)
  100.         if x not in list_numbers:
  101.             list_numbers.append(x)
  102.     return list_numbers
  103.  
  104. def main():
  105.     escolha = int(input('[1] - Tentar a sorte\n[2] - Ler sorteios\n[3] - Alterar sorteio\n[4] - Sair\n[*] - '))
  106.     print("")
  107.     if escolha == 1:
  108.         nums_mega_real = mega_sena_nums()
  109.         chute = [int(input('Digite o número %d: ' % x)) for x in range(1, 7)]
  110.         nome = str(input("Digite o seu nome: "))
  111.         if vef_hash(chute) == vef_hash(nums_mega_real):
  112.             entrar_values(str(nums_mega_real).replace('[', '').replace(']', ''), nome)
  113.             print("(%s)==(%s)" % (chute, nums_mega_real))
  114.         else:
  115.             entrar_values(str(nums_mega_real).replace('[', '').replace(']', ''))
  116.             print("(%s)!=(%s)" % (chute, nums_mega_real))
  117.         print("")
  118.     elif escolha == 2:
  119.         ler_sorteios()
  120.     elif escolha == 3:
  121.         alterar_sorteio()
  122.     else:
  123.         exit(1)
  124.  
  125. if __name__ == "__main__":
  126.     while 1:
  127.         main()
Advertisement
Add Comment
Please, Sign In to add comment