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!
Python
Python
Python
Python
Python
Python
Python
Python
Python
Python
Python
Python
Python
Python
Python
Python
Python
Python
Python
Python