# Create a Program to Create Lottery Picking System in Python Assignment Solution

July 06, 2024
Dr. David
🇦🇺 Australia
Python
Dr. David Adams, a distinguished Computer Science scholar, holds a PhD from the University of Melbourne, Australia. With over 5 years of experience in the field, he has completed over 300 Python assignments, showcasing his deep understanding and expertise in the subject matter.
Key Topics
• Instructions
• Requirements and Specifications
Tip of the day
News

## Instructions

Objective

Write a program to create lottery picking system in python language.

## Requirements and Specifications

Source Code

```import random def pick_winning_numbers(lb: int, ub:int, n: int) -> list: """ This function returns a list of 4 non-repeated random numbers :param lb: integer: lower bound of the range (inclusive) :param ub: integer: upper bound of the range (inclusive) :param n: integer: represents the number of random values to be returned :return: list of 4 integers """ numbers = random.sample(range(lb, ub+1), n) return numbers def pick_superball(lb: int, ub: int) -> int: """ This function returns a random integer between the range defined by the variables 'ub' and 'lb' :param lb: integer: lower bound of the range (inclusive) :param ub: integer: upper bound of the range (inclusive) :return: """ return random.randint(lb, ub) def convert_list_to_integers(str_list: list) -> list: """ This function accepts a list of string representing valid integers, and returns a list of these integers :param str_list: list of strings :return: list of integers """ list_int = [int(x) for x in str_list] return list_int def count_matches(winning_numbers: list, numbers: list) -> int: """ This function accepts two lists of integers, and count how many numbers from the second list are in the first list :param winning_numbers: list of integers :param numbers: list of integers :return: number of matched integers (int) """ matches = 0 for n in numbers: if n in winning_numbers: matches += 1 return matches def main(): """ Main function where all the functionality of the program is contained :return: None """ # First, pick today's winning numbers winning_numbers = pick_winning_numbers(1, 9, 4) # Pick the superball number sb = pick_superball(1, 9) # Create helper variables to count the number of entries, number of entries that used superball, # number of entries that matched 3 or 4 numbers, etc n_entries = 0 n_superball_used = 0 n_matched_3 = 0 n_matched_4 = 0 # Now, read the file of entries with open("entries.txt", 'r') as f: # Read all lines lines = f.readlines() # Pick customer numbers for i, line in enumerate(lines): # trim and strip line line = line.strip() # Split line by space to convert it into a list customer_numbers_str = line.split(" ") # Check if this customer used superball user_used_sb = False if "sb" in customer_numbers_str: # Remove the 'sb' from customer's numbers user_used_sb = True del customer_numbers_str[customer_numbers_str.index("sb")] # Increment the counter for number of superball used n_superball_used += 1 # Now, convert customer's numbers from string to int customer_numbers = convert_list_to_integers(customer_numbers_str) # Now, count matches n = count_matches(winning_numbers, customer_numbers) """ Now, if the user used the 'sb' option: * If the 'sb' number is in today's winning numbers, then add one additional match to this user * If 'sb' is not in today's winning numbers, then check if the user has this number """ if sb in winning_numbers: n += 1 else: if sb in customer_numbers and not sb in winning_numbers: n += 1 # Increment the entries counter n_entries += 1 # Check if the number of matches is 3 or 4 if n == 3: n_matched_3 += 1 elif n == 4: n_matched_4 += 1 # Now, display the results print("Pythonic Pick 4 Lottery Results") print("Today's winning numbers: [", end="") for i, x in enumerate(winning_numbers): print(x, end="") if i < len(winning_numbers) -1: print(", ", end="") print("]") print(f"Today's superball: {sb}") print(f"Number of entries: {n_entries}") print(f"Number of entries that used superball: {n_superball_used}") print(f"Number of entries that matched 3 numbers: {n_matched_3}") print(f"Number of entries that matched 4 numbers: {n_matched_4}") if __name__ == '__main__': main() ```

## Related Samples

At ProgrammingHomeworkHelp.com, we offer comprehensive support for Python assignments. Our dedicated team provides expertly crafted sample solutions to guide students through complex programming tasks. Each Python sample is designed to showcase best practices and coding techniques, helping you understand key concepts and improve your programming skills. Whether you're grappling with algorithms, data structures, or advanced Python features, our samples are here to support your learning journey. Explore our collection and enhance your Python expertise with confidence!