Criar nova eleição: deve ser possível criar uma nova eleição indicando um nome para a eleição, a data, descrição e, a seguir, cadastrando os candidatos e eleitores. O uso de um identificador escolhido pelo usuário é opcional.

Passo 1

Beleza, vamos lá! O exercício pede para a gente criar uma funcionalidade de “nova eleição”. Isso significa que vamos precisar desenvolver um sistema onde podemos adicionar uma eleição com um nome, data, descrição e depois cadastrar os candidatos e eleitores. Além disso, temos a opção de usar um identificador personalizado para a eleição, mas isso é opcional. Para resolver isso, vamos precisar usar conceitos de programação orientada a objetos e talvez um pouco de banco de dados para armazenar essas informações.

Passo 2

Primeiro, vamos pensar em como representar uma eleição no nosso código. Vamos criar uma classe chamada Eleicao. Essa classe vai ter atributos para o nome, data, descrição, e listas para candidatos e eleitores. Se o usuário quiser, também pode adicionar um identificador.
class Eleicao:
    def __init__(self, nome, data, descricao, identificador=None):
        self.nome = nome
        self.data = data
        self.descricao = descricao
        self.identificador = identificador
        self.candidatos = []
        self.eleitores = []

Passo 3

Agora, vamos precisar de funções para adicionar candidatos e eleitores. Vamos criar métodos dentro da classe Eleicao para isso. Cada candidato e eleitor pode ser representado por simples strings (nomes), mas se quiser algo mais detalhado, podemos usar outra classe.
    def adicionar_candidato(self, candidato):
        self.candidatos.append(candidato)
    
    def adicionar_eleitor(self, eleitor):
        self.eleitores.append(eleitor)

Passo 4

Vamos também criar uma função para criar uma nova eleição. Essa função vai pedir ao usuário para inserir os detalhes da eleição e depois adicionar candidatos e eleitores conforme necessário.
def criar_nova_eleicao():
    nome = input("Digite o nome da eleição: ")
    data = input("Digite a data da eleição (DD/MM/AAAA): ")
    descricao = input("Digite a descrição da eleição: ")
    identificador = input("Digite um identificador opcional (ou deixe em branco): ")
    if identificador == "":
        identificador = None
    
    eleicao = Eleicao(nome, data, descricao, identificador)
    
    while True:
        candidato = input("Digite o nome de um candidato (ou 'sair' para parar): ")
        if candidato.lower() == 'sair':
            break
        eleicao.adicionar_candidato(candidato)
    
    while True:
        eleitor = input("Digite o nome de um eleitor (ou 'sair' para parar): ")
        if eleitor.lower() == 'sair':
            break
        eleicao.adicionar_eleitor(eleitor)
    
    return eleicao

Passo 5

Por fim, vamos testar nossa função para garantir que tudo está funcionando direitinho. Vamos chamar a função criar_nova_eleicao e depois imprimir os detalhes da eleição criada.
def main():
    eleicao = criar_nova_eleicao()
    print("\nEleição criada com sucesso!")
    print(f"Nome: {eleicao.nome}")
    print(f"Data: {eleicao.data}")
    print(f"Descrição: {eleicao.descricao}")
    if eleicao.identificador:
        print(f"Identificador: {eleicao.identificador}")
    print("Candidatos:", ', '.join(eleicao.candidatos))
    print("Eleitores:", ', '.join(eleicao.eleitores))

if __name__ == "__main__":
    main()

Resposta

Prontinho! Agora você tem um sistema simples para criar uma nova eleição, incluir candidatos e eleitores, com a opção de adicionar um identificador personalizado se quiser.

Exercícios relacionados

Crie um procedimento chamado apresentaProduto, que recebe como parâmetro um dicionário que representa o produto, e apresenta os dados do produto. O produto deve ser apresentado no seguinte formato ( 1,5 ponto):
Se o produto não estiver em promoção: Se o produto estiver em promoção:
Código: <CODIGO_BARRA> Código: <CODIGO_BARRA>
Nome do Produto: <NOME_PRODUTO> Nome do Produto: <NOME_PRODUTO>
Crie uma função chamada existeProduto que recebe como parâmetro um valor inteiro que representa um código de barras de um produto e a lista de produtos no estoque e retorna True se existir algum produto armazenado na lista estoque que possua o código de barras igual ao valor passado no argumento da função. Caso contrário, a função deve retornar o valor False ( 1,0 ponto);
Cadastro de candidatos: deve ser possível cadastrar um novo candidato fornecendo seu número identificador, nome e descrição.
Para a apresentação do trabalho, incluir na tela inicial uma opção de login e senha de um usuário já cadastrado (administrador). Também já deverão estar cadastradas pelo menos 3 eleições, com 2 , 5 e 10 candidatos, respectivamente, e pelo menos 10 eleitores em cada. Pelo menos um eleitor deverá estar cadastrado somente em uma das eleições.