## Understanding List Processing

**Assignment: **

Write Python code that exercises your understanding of functions and lists in Python. You can build your code one function at a time, test it, and move to the next part.

Constraints:

- All functions are run through the main function
- Define your functions first and then call functions as required
- Feel free to use any predefined functions
- Do not use any global variables
- Avoid using break and continue statements
- Avoid using exit()

Here is the skeleton of a sample code that you may want to follow:

# display of menu of choices def menu():

#process test scores – return average def procTest (test):

#process as et of purchases def processPurchases (num):

#process even numbers

def even_numbers (n1, n2):

#the main function def main():

# call the functions to process the data

##MAKE sure to define your lists for the names and votes in your main function

main() ### call the main to start the process

Sample test run 1 – Make sure to fully test your code. Make sure to re-create all the output shown in the sample runs. Don’t worry about lining up the output.

Enter 1 to process test scores

Enter 2 to process purchase prices

Enter 3 to process even numbers

Enter 4 to exit

42

Invalid choice - try again

Enter 1 to process test scores

Enter 2 to process purchase prices

Enter 3 to process even numbers

Enter 4 to exit

1

Please enter the test scores. Type -1 when finished: 100

Please enter the test scores. Type -1 when finished: 80

Please enter the test scores. Type -1 when finished: 90

Please enter the test scores. Type -1 when finished: 85

Please enter the test scores. Type -1 when finished: -1

Total: 355.00

Lowest: 80.00

Highest: 100.00

Average: 88.75

Enter 1 to process test scores

Enter 2 to process purchase prices

Enter 3 to process even numbers

Enter 4 to exit

2

Enter the number of products to purchase: 2

Enter the price of an item: 100.76

Enter the price of an item: 10

Average price of all products: 55.38

Enter 1 to process test scores

Enter 2 to process purchase prices

Enter 3 to process even numbers

Enter 4 to exit

3

Enter the first number: 8

Enter the second number: 20 8

10

12

14

16

18

20

Total of all even numbers = 98 Enter 1 to process test scores

Enter 2 to process purchase prices

Enter 3 to process even numbers

Enter 4 to exit

4

**Solution:**

```
# display of menu of choices
def menu():
print("Enter 1 to process test scores")
print("Enter 2 to process purchase prices")
print("Enter 3 to process even numbers")
print("Enter 4 to exit")
#process test scores – return average
def procTest (test):
print(f"Total: {sum(test)}")
print(f"Lowest: {min(test)}")
print(f"Highest: {max(test)}")
print(f"Average: {sum(test)/len(test)}")
#process as et of purchases
def processPurchases (num):
price_values = []
for i in range(num):
price = float(input("Enter the price of an item: "))
price_values.append(price)
avg = sum(price_values)/len(price_values)
print(f"Average price of all products: {avg}")
#process even numbers
def even_numbers (n1, n2):
if n1 <= n2:
total = 0
for num in range(n1, n2+1):
if num%2 == 0:
total += num
print(num)
print(f"Total of all even numbers = {total}")
else:
print(f"Total of all even numbers = {-100}")
#the main function
def main():
# call the functions to process the data
##MAKE sure to define your lists for the names and votes in your main function
choice = "inf"
while choice != "4":
choice = "inf"
menu()
while(choice not in ["1","2","3","4"]):
choice = input()
if choice not in ["1","2","3","4"]:
print("Invalid choice - try again")
if choice == "1":
scores = []
score = ""
while score != "-1":
score = input("Please enter the test scores. Type -1 when finished: ")
if score != "-1":
scores.append(float(score))
procTest(scores)
elif choice == "2":
num = -1
while int(num) < 0:
num = input("Enter the number of products to purchase:")
if int(num) >0:
processPurchases (int(num))
else:
print("Invalid. Number has to be positive integer.")
elif choice == "3":
n1 = int(input("Enter the first number:"))
n2 = int(input("Enter the second number:"))
even_numbers (n1, n2)
main()
# In[ ]:
```