Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I\'ve been recently learning Python (version 3.6.1,) and doing some practice pro

ID: 3830233 • Letter: I

Question

I've been recently learning Python (version 3.6.1,) and doing some practice problems. But, because I'm still very new to Python, I'm having some trouble figuring out exactly how to write the code, and always get tripped up with the indentation. I'd really appreciate some help with this, and if possible, explanation of each step.

_________________________________________________________________________________________________

Write a program that prompts the user to input a different number each time, repetitively (using either integer and/or float numbers), and should have the following:

1. There are 3 types of legitimate inputs for this program

number/numeric value - To calculate average

" # " - For continuing to the next input

"done" - To end the program

2. If the user inputs a number, then add this number to all the existing numbers from the previous input & calculate their real-time average. Display real-time average (float number) in the next series of inputs & provide a message, such as “Input a number. Current average is …”

3. The new input number must be different from any numbers entered previously. If a number that has already been added is used, then the program will not accept the number and instruct the user to input a non-duplicated number. (Ex. If a duplicate number is entered, the program should indicate “No duplicate numbers” in the hint message.)

4. When the user inputs "#" , the program should skip to the next round of input without any changes being made. The average will remain the same

5. When anything other than the number, “#”, or “done”, is entered, the program should not accept the input. Program should indicate “Please provide correct input” for the hint message (Example, if "et" is etnered, the program will not find it as a valid input & provide the hint message)

6. When “done” is entered, the program execution stops & displays the average of all the previously entered numbers, printing out “Program Ended. The average is …”. Providing the final average value, once the user inputs "done".

Explanation / Answer

Hi,

please find program below. Let me know in case of any issue. Thanks.

items=[] #this is array to store all the number that is imput. This will be used to find duplicate numbers

counter = 0 #this counter will count how many numbers the user has inserted into the program and will be used as denominator
sum_of_numbers = 0 #this number is set as 0 as currently the sum is 0, as more numbers are inputed, they will be added together

avg=0.0 #this stores the current average

while 1:
  
   item=input('Input a number. Current average is %.2f: '%avg)
   if item.isdigit(): #checking if the input is a number
       if item not in items:
           items.append(item)
           b=sum(int(i) for i in items)
           counter = counter + 1
           avg=b/counter
      
       else:
           print('Duplicate number')
   elif item=='done':
           break
   elif item=='#':
   continue
   else:
       print('Please provide correct input')
print('Program Ended. The final average is %.2f: '%avg)

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote