Skip to content

Instantly share code, notes, and snippets.

@addohm
Created August 7, 2023 16:34
Show Gist options
  • Save addohm/1af7145cd7af07e687baf8848835a16f to your computer and use it in GitHub Desktop.
Save addohm/1af7145cd7af07e687baf8848835a16f to your computer and use it in GitHub Desktop.

Revisions

  1. addohm created this gist Aug 7, 2023.
    44 changes: 44 additions & 0 deletions main.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,44 @@
    import requests
    from datetime import datetime

    def get_mega_millions_data():
    url = "https://api.opendatastack.com/v1/lottery/mega-millions"
    response = requests.get(url)
    if response.status_code == 200:
    return response.json()
    else:
    raise Exception("Failed to fetch data")

    def filter_data_by_date(data, start_date, end_date):
    start_date = datetime.strptime(start_date, "%Y-%m-%d")
    end_date = datetime.strptime(end_date, "%Y-%m-%d")
    filtered_data = []
    for entry in data:
    draw_date = datetime.strptime(entry["draw_date"], "%Y-%m-%d")
    if start_date <= draw_date <= end_date:
    filtered_data.append(entry)
    return filtered_data

    def get_most_common_numbers(data, num_of_common_numbers):
    numbers_count = {}
    for entry in data:
    winning_numbers = entry["winning_numbers"].split()
    for number in winning_numbers:
    numbers_count[number] = numbers_count.get(number, 0) + 1
    sorted_numbers = sorted(numbers_count.items(), key=lambda x: x[1], reverse=True)
    return sorted_numbers[:num_of_common_numbers]

    if __name__ == "__main__":
    start_date = input("Enter the start date (YYYY-MM-DD): ")
    end_date = input("Enter the end date (YYYY-MM-DD): ")
    num_of_common_numbers = int(input("Enter the number of most common numbers to show: "))

    try:
    data = get_mega_millions_data()
    filtered_data = filter_data_by_date(data, start_date, end_date)
    common_numbers = get_most_common_numbers(filtered_data, num_of_common_numbers)
    print(f"The most common {num_of_common_numbers} winning numbers from {start_date} to {end_date}:")
    for number, count in common_numbers:
    print(f"Number: {number}, Frequency: {count}")
    except Exception as e:
    print(f"An error occurred: {e}")