Python Forum
How to decrease input - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: Python Coding (https://python-forum.io/forum-7.html)
+--- Forum: General Coding Help (https://python-forum.io/forum-8.html)
+--- Thread: How to decrease input (/thread-33305.html)



How to decrease input - Yankees1111 - Apr-14-2021

I'm very new to coding so my apologies if I'm saying any of this wrong. I am trying to write a code for this prompt:

A company has 3 divisions. After inputing the sales for each division across 4 quarters, I want to print the average sales for each division. Below is the code:

divisions = 3
while divisions > 0:
    total = 0
    quarters = 4
    while quarters > 0:
        sales = float(input("Enter sales: "))
        total += sales
        quarters -= 1
    average = total / 4
    divisions -= 1
    print("The average for division", divisions + 1, "is $", format(average, '.2f'))
Here is my problem. When I run the code, it prompts me to "Enter sales". And then after I do it four times, it tells me the average. How can I write this code so that it will ask me to enter the sales for Division 1 Quarter 1, Division 1 Quarter 2, Division 2 Quarter 2 etc. and then it will print "The average sales for Division 1 were...", "The average sales for Division 2 were..."

THANK YOU


RE: How to decrease input - ibreeden - Apr-14-2021

Please read BBCode to learn how to publish Python code, output, error messages.

The answer to your question:
sales = float(input(f"Enter sales for division {divisions} in quarter {quarters}: "))



RE: How to decrease input - BashBedlam - Apr-14-2021

This is how I would accomplish that goal:

overall_sales = [[0, 0]]

def average (sales_list: list) -> float :
	return sum (sales_list) / len (sales_list)

def input_quartly_sales (divition_number: int) -> list :
	quarterly_sales = []
	for quarter_number in range (1, 5) :
		prompt = f'Enter sales for division {division_number} for the'
		prompt += f' quarter number {quarter_number} : '
		quarterly_sales.append (float (input (prompt)))
	return quarterly_sales

for division_number in range (1, 4) :
	print (f'\nSales for division {division_number}.')
	overall_sales.append (input_quartly_sales  (division_number))

print ()
for division_number in range (1, 4) :
	print (f'The average sales for division {division_number}', end = '')
	print (f' is ${average (overall_sales [division_number]):,.2f}')