Created
August 7, 2023 16:34
-
-
Save addohm/1af7145cd7af07e687baf8848835a16f to your computer and use it in GitHub Desktop.
Lottery Numbers based on historical data
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 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}") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment