image

Acesse bootcamps ilimitados e +650 cursos

50
%OFF
Article image
Carlos CGS
Carlos CGS26/05/2025 08:06
Compartilhe
WEX - End to End EngineeringRecomendados para vocêWEX - End to End Engineering

#21 - Números mais Sorteados da Mega-Sena com Python 💰🐍

    🌌 Projeto CodeVerse Python - #21/2025

    👋 Fala Galera Dev!

    Hoje vamos sair um pouco do óbvio e fazer um projeto diferente... Quem sabe até dá uma ajudinha naquela fezinha na Mega da Virada, né? 😄

    Neste artigo, vamos criar um aplicativo em Python que simula diversos sorteios da Mega-Sena e mostra pra gente quais são os números que mais aparecem nesses jogos. É uma ideia divertida e ao mesmo tempo um ótimo exercício prático com Python — ideal pra quem tá começando e quer entender como trabalhar com listas, dicionários, laços de repetição e ordenação de dados.

    __________________________________________________________________________________________________________________________________________________

    🎲 Como funciona o jogo da Mega-Sena?

    A Mega-Sena é um dos jogos mais populares do Brasil. Nele, são sorteados 6 números entre 1 e 60, e o jogador precisa acertar todos para ganhar o prêmio principal.

    Nosso projeto vai simular esse sorteio milhares de vezes e depois mostrar quais números apareceram com mais frequência — uma estatística simples, mas que pode ser muito útil pra analisar padrões e também praticar programação! E nesse projeto é você que escolhe a quantidade de vezes que o loop de repetição irá executar. "Dependende apenas da sua máquina, pois pode travar a depender de quantos milhões de vezes voce vai querer executar" rs

    ___________________________________________________________________________________________________________________________________________________

    💥O poder infinito entre os Multiversos do Python

    Imagine que cada sorteio é como uma viagem pelo multiverso — cada universo paralelo com combinações diferentes de números. E quem comanda essas possibilidades é você através da biblioteca random, e não o Dr. Estranho, vamos ver como usar esse super poder aqui.

    A random é uma biblioteca nativa do Python (ou seja, você não precisa instalar nada) e serve para gerar números aleatórios. No nosso caso, ela vai simular os sorteios como se fossem reais, de forma randômica, como o próprio nome diz.

    image

    Exemplo do Código na IDE Visual Studio Code

    ___________________________________________________________________________________________________________________________________________________

    🎯 O Código Completo

    Aqui está o código completo do nosso simulador, onde você, sim você escolhe a quantidade de vezes que ele sumulará os jogos de seis numeros da mega sena, fazendo diversos sorteiros consecutivos e armanzenando a quantidade de vezes que cada numero é sorteados, e ao final nos devolve os seis numeros mais sorteados com a quantidade de vezes que cada um apareceu nos sorteios:

    import random
    
    # Sorteia seis números em um jogo simples
    def sorteio():
      numerosSorteados = []
      for i in range(6):
          numero = random.randint(1, 60)
          numerosSorteados.append(numero)
      return numerosSorteados
    
    # Solicita ao usuário a quantidade de sorteios
    quantidadeJogosSorteados = int(
      input("Informe quantas jogos devem ser feitos para a estatística...")
    )
    
    # Dicionário para Armazenar os numeros mais sorteados
    contadorNumeros = {}
    for i in range(quantidadeJogosSorteados):
      jogoFeito = sorteio()
      for numero in jogoFeito:
          contadorNumeros[numero] = contadorNumeros.get(numero, 0) + 1
    
    # Verifica os seis numeros mais sorteados
    numerosMaisSorteados = sorted(contadorNumeros.items(), key=lambda x: x[1], reverse=True)
    
    # Imprime os seis numeros mais sorteados
    print("Os seis números mais sorteados foram:")
    for i in range(6):
      numero, contagem = numerosMaisSorteados[i]
      print(f"{i+1}° Número: {numero} - Sorteado {contagem} vezes")
    

    🧩 Explicando o Código, Bloco a Bloco

    1. Importando a biblioteca

    import random
    

    A biblioteca random nos permite gerar números aleatórios — essencial para simular os sorteios da Mega-Sena.

    2. Função sorteio()

    def sorteio():
      numerosSorteados = []
      for i in range(6):
          numero = random.randint(1, 60)
          numerosSorteados.append(numero)
      return numerosSorteados
    

    Aqui, a função sorteia 6 números aleatórios entre 1 e 60 e retorna uma lista com esses números:

    • Iniciamos uma função chamada sorteio na primeira linha;
    • Na segunda linha criamos uma lista vazia chamada numerosSorteados
    • Na terceira linha iniciamos um for para ser executado seis vezes, e dentro do for atribuimos a numero um numero randômico entre 1 e 60. Para logo depois atribuirmos a a lista numerosSorteados esse numero aleatório acima, sendo repetido por seis vezes.

    3. Coletando o número de simulações

    quantidadeJogosSorteados = int(input("Informe quantas jogos devem ser feitos..."))
    

    O usuário informa quantas simulações (ou jogos) o programa deve fazer. Isso pode ser 100, 1.000, ou até 1 milhão se o PC aguentar! 💻🔥

    4. Armazenando os números sorteados

    contadorNumeros = {}
    for i in range(quantidadeJogosSorteados):
      jogoFeito = sorteio()
      for numero in jogoFeito:
          contadorNumeros[numero] = contadorNumeros.get(numero, 0) + 1
    

    Usamos um dicionário para contar quantas vezes cada número foi sorteado. A função get() ajuda a evitar erros ao somar os valores, mesmo que ainda não existam no dicionário.

    • Na primeira linha iniciamos um dicionário vazio chamado contadorNumeros, que vai armazenar quantas vezes cada número foi sorteado ao longo dos jogos simulados.
    • Na segunda linha criamos um laço for que será repetido conforme o valor informado pelo usuário na variável quantidadeJogosSorteados. A cada repetição, é como se estivéssemos fazendo um novo jogo da Mega-Sena com 6 números sorteados.
    • Na terceira chamamos a função sorteio() que criamos antes, e ela nos retorna uma lista com 6 números aleatórios entre 1 e 60. Esses números ficam armazenados na variável jogoFeito.
    • Logo após criamos um laço for, dessa vez para percorrer cada número individualmente dentro do jogo que acabou de ser sorteado.
    • Para contar quantas vezes cada número apareceu, usamos a função .get() do dicionário. Se o número já existe no dicionário, o .get() retorna o valor atual (quantas vezes ele já foi sorteado) e soma 1. Se o número ainda não existe, o .get(numero, 0) retorna 0, e assim ele começa a contagem do zero, somando +1 na sequência. Dessa forma, evitamos erros de chave inexistente e mantemos o código mais limpo e funcional.

    5. Ordenando os números mais sorteados (a parte chave!)

    numerosMaisSorteados = sorted(contadorNumeros.items(), key=lambda x: x[1], reverse=True)
    

    🧠 Bora entender essa linha por partes:

    • contadorNumeros.items() devolve uma lista de tuplas, como:
    [(23, 5), (12, 7), (48, 3), ...]
    
    • key=lambda x: x[1] é uma função anônima (lambda) que diz para o sorted ordenar com base no segundo item da tupla — ou seja, a quantidade de vezes que o número foi sorteado.
    • reverse=True garante que a ordenação seja do maior para o menor, então os números mais sorteados vêm primeiro.

    Essa é uma técnica muito poderosa em Python, usada para ordenar listas complexas com base em critérios específicos. Aprender a usar lambda com sorted é um passo importante para evoluir como dev.

    6. Imprimindo o resultado

    for i in range(6):
      numero, contagem = numerosMaisSorteados[i]
      print(f"{i+1}° Número: {numero} - Sorteado {contagem} vezes")
    

    Aqui exibimos os 6 números mais sorteados, junto da quantidade de vezes que cada um apareceu.

    ___________________________________________________________________________________________________________________________________________________

    🎓 Conclusão

    Neste artigo, vimos um o código de forma prática e divertida usando Python: simulamos sorteios da Mega-Sena e identificamos os números mais frequentemente sorteados. Apesar de ser um projeto leve, ele nos permitiu aprender conceitos fundamentais que são muito úteis no dia a dia de quem está começando a programar.

    No próximo artigo da série CodeVerse, vamos mergulhar em um tema muito importante: Programação Orientada a Objetos (POO) com Python. Vamos aprender o que são classes, objetos, atributos, métodos, herança, encapsulamento e muito mais — tudo de forma bem didática, com exemplos práticos e fáceis de entender.

    Se você está dando os primeiros passos na programação, dominar POO vai abrir um novo mundo de possibilidades para organizar melhor seus projetos e pensar como um verdadeiro desenvolvedor profissional.

    Gostou do artigo? Então:

    🔗 Me acompanhe no LinkedIn para ver mais dicas, projetos e artigos sobre programação e tecnologia!

    📂 Confira também o repositório oficial do projeto CodeVerse no meu GitHub — lá você encontra esse e outros códigos comentados, com atualizações constantes!

    👨💻 Se quiser contribuir ou tirar dúvidas, fique à vontade para abrir uma issue ou me chamar por mensagem. Vamos crescer juntos na jornada dev!

    Compartilhe
    Recomendados para você
    TONNIE - Java and AI in Europe
    Microsoft - Azure Administrator Certification (AZ-104)
    WEX - End to End Engineering
    Comentários (2)
    DIO Community
    DIO Community - 27/05/2025 10:41

    Incrível, Carlos! Que projeto divertido e didático você criou com Python para simular os números mais sorteados da Mega-Sena! Sua explicação detalhada do código, abordando listas, dicionários, laços de repetição e ordenação de dados, é excelente para quem está começando na programação. A ideia de "sair um pouco do óbvio" e aplicar a programação de forma tão criativa é fantástica!

    A forma como você utiliza a biblioteca random e manipula dados para extrair insights, mesmo em um cenário lúdico, demonstra um domínio valioso para o dia a dia de qualquer desenvolvedor. Além disso, a especialização da DIO em Data-Driven Content e o uso de Inteligência Artificial e automação para análise preditiva reforçam a importância de habilidades como as que você demonstra.

    Considerando a paixão por transformar aprendizado em prática, qual foi o maior desafio ou a maior sacada que você teve ao desenvolver a lógica para contar e ordenar os números mais sorteados no seu simulador da Mega-Sena?

    HF

    Heloisa Freitas - 26/05/2025 11:29

    Muito interessante teu projeto!

    Recomendados para vocêWEX - End to End Engineering