🎬
Desafio Prático #1

Sistema de Votação
de Filme

Um guia passo a passo para construir seu primeiro programa completo em Python — usando variáveis, listas, loops, condicionais e funções.

1
Entendendo o Problema
Antes de codar, vamos pensar!

Imagine que você organiza uma sessão de cinema. Seus amigos precisam votar em qual filme assistir. Você precisa de um sistema que:

📋 Mostra opções Menu com 3 filmes
🔄 Repete Várias pessoas votam
📦 Guarda votos Armazena numa lista
🛑 Para Digitar 0 encerra
🏆 Resultado Quem ganhou?
Analogia do mundo real

É como uma urna de votação: você mostra as opções no mural, cada pessoa deposita seu voto na urna (lista), e quando todos votaram, você abre a urna e conta os votos!

🗺️ Mapa do Programa

Antes de escrever código, visualize o fluxo:

Início
🎬 Criar lista de votos vazia
começa o loop ↩️
Processo
📋 Mostrar menu de filmes
Entrada
⌨️ Pedir voto do usuário
Decisão
Digitou 0?
Não → voto válido? Sim ↓
Ação
📦 Guardar voto na lista
volta pro loop 🔄
Final
🏆 Contar votos e mostrar vencedor
2
Criando o Menu
Uma função para exibir as opções
🤔 Por que usar uma função?

Imagine que você vai imprimir o menu toda vez que alguém votar. Em vez de copiar e colar o mesmo código várias vezes, colocamos dentro de uma função — assim basta chamar mostrar_menu() quando precisar!

Função = Receita de bolo

Você escreve a receita uma vez. Toda vez que quer bolo, segue a receita. Não precisa inventar de novo!

votacao.py — Passo 1
1
2
3
4
5
6
def mostrar_menu():
    print("🎬 Votação de Filme")
    print("1 - Filme A")
    print("2 - Filme B")
    print("3 - Filme C")
    print("0 - Encerrar")
💡
def é a palavra mágica que cria funções. O nome mostrar_menu é escolhido por nós, e os parênteses () indicam que é uma função. Tudo que está indentado (com espaço) abaixo dela faz parte da função.
3
O Loop Infinito
while True — repetir até alguém parar
🔄 O que é while True?

while True significa: "repita para sempre". Mas calma! Dentro do loop, usamos break para escapar quando o usuário digitar 0.

Analogia: Porteiro de festa

O porteiro fica na porta o tempo todo perguntando: "Qual seu voto?". Quando alguém diz "0 — chega!", ele fecha a porta (break).

votacao.py — Passo 2
1
2
3
4
5
6
7
8
9
10
11
12
13
votos = []  # Lista vazia — nossa "urna"

while True:
    mostrar_menu()  # Chama a função!

    opcao = int(input("Digite seu voto: "))

    if opcao == 0:
        break  # 🛑 Sai do loop!
    elif opcao == 1 or opcao == 2 or opcao == 3:
        votos.append(opcao)  # 📦 Guarda na lista
        print("✅ Voto registrado!")
    else:
        print("⚠️ Opção inválida!")
⚠️
Cuidado! Sem o break, o loop roda para sempre e trava o programa! Sempre tenha uma condição de saída.

👁️ Visualizando a lista crescendo

Cada voto é adicionado à lista com .append(). Clique para simular:

votos =
[ ]
Contagem:
🎬 Filme A
0
🎬 Filme B
0
🎬 Filme C
0
4
Guardando os Votos
Listas — a memória do programa
📦 O que é uma Lista?

Uma lista em Python é como uma caixa mágica que guarda vários valores em sequência. Criamos com [] e adicionamos itens com .append().

Lista = Caderno de anotações

Cada página é uma posição. Quando alguém vota, você escreve na próxima página disponível. No final, você folheia e conta!

Entendendo a lista
# Criando lista vazia
votos = []

# Alguém vota no Filme A (opção 1)
votos.append(1)    # votos = [1]

# Outra pessoa vota no Filme C (opção 3)
votos.append(3)    # votos = [1, 3]

# Mais uma pessoa vota no Filme A (opção 1)
votos.append(1)    # votos = [1, 3, 1]

# Contando votos do Filme A:
votos.count(1)     # Resultado: 2 ✨
🔑
.append(valor) = adicionar no final da lista
.count(valor) = contar quantas vezes aparece
São dois dos métodos de lista mais usados em Python!
5
Contando e Decidindo
Quem ganhou? if/elif/else decide!
🏆 A lógica da contagem

Depois que a votação encerra, precisamos: 1) contar os votos de cada filme e 2) comparar quem tem mais. Usamos .count() para contar e if/elif/else para comparar.

votacao.py — Passo 3
1
2
3
4
5
6
7
8
9
10
11
# Contando votos de cada filme
v1 = votos.count(1)  # Quantos votaram 1?
v2 = votos.count(2)  # Quantos votaram 2?
v3 = votos.count(3)  # Quantos votaram 3?

# Quem ganhou?
if v1 >= v2 and v1 >= v3:
    print(f"Filme A ganhou com {v1} voto(s)!")
elif v2 >= v1 and v2 >= v3:
    print(f"Filme B ganhou com {v2} voto(s)!")
else:
    print(f"Filme C ganhou com {v3} voto(s)!")
Lendo o código em português

SE o Filme A tem mais (ou igual) votos que B E mais que C → A ganhou!
SENÃO SE B tem mais que A E mais que C → B ganhou!
SENÃO → sobrou C, então C ganhou!

O f"..." é uma f-string — permite colocar variáveis dentro do texto usando {chaves}. É como um template que o Python preenche automaticamente!
6
Código Completo
Tudo junto e funcionando!
Código final — pronto para rodar
votacao.py — Versão Completa ✅
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 🎬 Sistema de Votação de Filme
# Desafio 1 — Programa AI

def mostrar_menu():
    print("🎬 Votação de Filme")
    print("1 - Filme A")
    print("2 - Filme B")
    print("3 - Filme C")
    print("0 - Encerrar")

votos = []  # Lista vazia — nossa urna

while True:
    mostrar_menu()
    opcao = int(input("Digite seu voto: "))

    if opcao == 0:
        break
    elif opcao == 1 or opcao == 2 or opcao == 3:
        votos.append(opcao)
        print("✅ Voto registrado!")
    else:
        print("⚠️ Opção inválida!")

# Contagem final
v1 = votos.count(1)
v2 = votos.count(2)
v3 = votos.count(3)

if v1 >= v2 and v1 >= v3:
    print(f"🏆 Filme A ganhou com {v1} voto(s)!")
elif v2 >= v1 and v2 >= v3:
    print(f"🏆 Filme B ganhou com {v2} voto(s)!")
else:
    print(f"🏆 Filme C ganhou com {v3} voto(s)!")
📦 O que cada conceito faz aqui?
FUNÇÃO mostrar_menu() — organiza e reutiliza código
LISTA votos = [] — armazena todos os votos
LOOP while True + break — repete até digitar 0
CONDICIONAL if/elif/else — decide o que fazer com cada voto
VARIÁVEIS opcao, v1, v2, v3 — guardam dados temporários
Veja Funcionando!
Simulação animada do programa

Veja como o programa roda passo a passo no terminal:

python votacao.py
Clique em "Rodar Simulação" para ver o programa em ação...
🏆

Desafio Concluído!

Você aprendeu a combinar funções, listas, loops e condicionais num programa completo. Agora é sua vez de criar!

🚀 Desafios extras

✦ Troque os nomes "Filme A/B/C" por filmes reais
✦ Mostre o percentual de votos de cada filme
✦ Trate o empate como caso especial
✦ Mostre a quantidade total de votos no final