-
-
Save danigfavero/608f71546a937a0d3f29fad215282d39 to your computer and use it in GitHub Desktop.
Estudo Python: Mini sistema de sorteio, Gera tickets para cada nome cadastrado em data_sorteio.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from random import shuffle | |
class Cadastro: | |
''' Recebe um cpf e gera um objeto Cadastro que possui um atributo para | |
guardar o ticket definido a partir do cpf passado. | |
''' | |
def __init__(self, cpf): | |
self.ticket = self.gera_ticket(cpf) | |
def gera_ticket(self, cpf): | |
ticket = list(str(id(cpf))) | |
shuffle(ticket) | |
ticket = self.normaliza(ticket) | |
return ticket | |
@staticmethod | |
def normaliza(string): | |
normalizado = '' | |
for caracter in string: | |
normalizado += caracter | |
return normalizado |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
quantidade | nome | cpf | codigo | nascimento | ||
---|---|---|---|---|---|---|
5 | Juliana Dantas de Andrade | july.dantas@teste-hotmail.com | 942909461465 | 322205 | 23/02/1989 | |
5 | Lais Vale de Melo | lais25vm@teste-hotmail.com | 4639948454 | 515105 | 24/02/1989 | |
5 | Silvaneide Rosa da Silva | silvaneiderosa40@teste-teste-yahoo.com.br | 942909461 | 515105 | 25/02/1989 | |
5 | Ana Lucia de Fatima Lopes | lopes.filha@teste-hotmail.com | 942909462 | 515105 | 26/02/1989 | |
8 | Denize Santos de Medeiros | denize.medeiros@teste-teste-yahoo.com.br | 942909463 | 515105 | 27/02/1989 | |
5 | Maria Elaine Felix | maria.elaine.felix@teste-gmail.com | 942909464 | 515105 | 28/02/1989 | |
5 | Édson Wânder Véras | edsonveras9@teste-hotmail.com | 942909465 | 223505 | 01/03/1989 | |
5 | Andreza Cristina Costa Fernandes | andrezaccf@teste-teste-yahoo.com.br | 942909466 | 223505 | 02/03/1989 | |
5 | Dagoberto Gonzalez Martinez | dagoyana26@teste-gmail.com | 942909467 | 225142 | 03/03/1989 | |
7 | Narriman dos Santos Barbosa | narrisantosrn@teste-teste-yahoo.com.br | 942909468 | 515105 | 04/03/1989 | |
7 | Tércio Guimarães de Oliveira | tguimaraes@teste-hotmail.com | 942909469 | 515105 | 05/03/1989 | |
5 | Ana Ivete Vale de Luciana Brasil | smscaico@rn.teste-gov.br | 942909470 | 515105 | 06/03/1989 | |
5 | José Alves Filho | alvespedagogia@teste-teste-yahoo.com.br | 942909471 | 515105 | 07/03/1989 | |
5 | Fabiana de Azevedo Guedes Sales | fafaguedes@teste-teste-yahoo.com.br | 942909472 | 515105 | 08/03/1989 | |
6 | Maria do Rosario Dantas | dantaerosa@teste-hotmail.com | 942909473 | 515105 | 09/03/1989 | |
5 | Jurema Sandra de Souza | jussouza@outlook.com | 942909474 | 515105 | 10/03/1989 | |
5 | Betiane Fernandes da Costa | betiane@teste-hotmail.com.br | 942909475 | 223505 | 11/03/1989 | |
5 | Maria Edith de Medeiros Silva | elitaabc@teste-hotmail.com | 942909476 | 515105 | 12/03/1989 | |
6 | Iasodaria Kaiwe Gomes dos Santos | iadossantos@outlook.com | 942909477 | 515105 | 13/03/1989 | |
5 | Alexsandra Pereira da Silva | negaalepereira@teste-hotmail.com | 942909478 | 515105 | 14/03/1989 | |
10 | Josicleia Pereira de Medeiros | josic_l@teste-hotmail.com | 942909479 | 515105 | 15/03/1989 | |
7 | Selma Santos de Melo | selmamelo01@teste-gmail.com | 942909480 | 515105 | 16/03/1989 | |
5 | Maria José Crispim de Araújo | marj.crispim@holtmail.com | 942909481 | 515105 | 17/03/1989 | |
5 | Jose Miguel Rivaflecha Vicente | lizykarol13@teste-yahoo.es | 942909482 | 225142 | 18/03/1989 | |
5 | Reinaldo Batista Sales Júnior | reinaldos22@teste-teste-yahoo.com.br | 942909483 | 515105 | 19/03/1989 | |
1 | Ana Karla dos Santos Silva | an.karladossantos@teste-hotmail.com | 942909484 | 223505 | 20/03/1989 | |
5 | Lorena Santos Dantas Saraiva | lo_saraiva@teste-hotmail.com | 942909485 | 223505 | 21/03/1989 | |
5 | Martha Concepcion Pujol Luna | leiradiaz.mpl@teste-gmail.com | 942909486 | 225142 | 22/03/1989 | |
5 | Roseane Cristina Santos de Medeiros | roseanecristi@teste-hotmail.com | 942909487 | 515105 | 23/03/1989 | |
12 | Kim Mansur | kimmansur@teste-gmail.com | 942909488 | 223605 | 24/03/1989 | |
6 | Marcela Fernandes de A B de Morais | marcela-fernandes14@teste-hotmail.com | 942909489 | 223505 | 25/03/1989 | |
5 | Ana Karla Silva de Carvalho | ankcarvalho@teste-gmail.com | 942909490 | 223272 | 26/03/1989 | |
5 | Maria Concebida Maia | concebidamaia@teste-teste-yahoo.com.br | 942909491 | 515105 | 27/03/1989 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import csv | |
from random import randrange | |
from pessoa import Pessoa | |
from cadastro import Cadastro | |
tickets_cadastrados = [] | |
with open('dados_sorteio.csv', mode='r') as arquivo_csv: | |
leitor_csv = csv.DictReader(arquivo_csv) | |
for linha in leitor_csv: | |
pessoa = Pessoa(linha['nome'], linha['nascimento'], linha['cpf']) | |
cadastro = Cadastro(pessoa.cpf) | |
pessoa.set_ticket(cadastro.ticket) | |
if pessoa.maioridade: | |
tickets_cadastrados.append(pessoa) | |
for ticket in range(10): | |
indice_aleatorio = randrange(len(tickets_cadastrados)) | |
vencedor = tickets_cadastrados[indice_aleatorio] | |
print(f"[+]Nome: {vencedor.nome}") | |
print(f"[+]Ticket: {vencedor.ticket}\n") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from datetime import datetime | |
class Pessoa: | |
''' Recebe nome, data de nascimento e cpf de uma pessoa. Calcula sua | |
idade, checa se é menor de 18 anos e cria um objeto do tipo Pessoa com | |
esses atributos. Tem métodos que possibilitam definir um ticket pra | |
pessoa e criar um dicionário com seus respectivos dados. | |
''' | |
def __init__(self, nome, nascimento, cpf): | |
self.nome = nome | |
self.nascimento = nascimento | |
self.cpf = cpf | |
self.idade = self.calcula_idade() | |
self.maioridade = self.maior_de_idade() | |
self.ticket = None | |
def calcula_idade(self): | |
hoje = datetime.today() | |
nascimento = datetime.strptime(self.nascimento, '%d/%m/%Y') | |
return hoje.year - nascimento.year | |
def maior_de_idade(self): | |
return self.idade >= 18 | |
def set_ticket(self, ticket): | |
self.ticket = ticket | |
def get_dados(self): | |
dados = { | |
'nome': self.nome, | |
'nascimento': self.nascimento, | |
'cpf': self.cpf, | |
'idade': self.idade, | |
'maior_de_idade': self.maioridade | |
} | |
return dados |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment