Averaging a list of numbers the user inputs [Python]

Sigchi4life
Category:
Programming
Price: $5 USD

Question description

Ok so this is what I'm being asked to do:

Write a program that asks the user to enter some numbers (positives, negatives and zeros). Your program should NOT ask the user to enter a fixed number of numbers. Also it should NOT ask for the number of numbers the user wants to enter. But rather it should ask the user to enter a few numbers and end with -9999 (a sentinel value). The user can enter the numbers in any order. Your program should NOT ask the user to enter the positive and the negative numbers separately. Your program then should create a list with the numbers entered (make sure NOT to include the sentinel value (-9999) in this list) and output the list of numbers and another list with the following averages (using the input list and the above functions):
[the average of all the positive numbers, the average of all the non-positive numbers, the average of all the numbers]
Sample run:
Enter a number (-9999 to end):  4 Enter a number (-9999 to end):  -3 Enter a number (-9999 to end): -15 Enter a number (-9999 to end):  0 Enter a number (-9999 to end):  10
Enter a number (-9999 to end):  22 Enter a number (-9999 to end):  -9999 The list of all numbers entered is: [4, -3, -15, 0, 10, 22] The list with averages is: [12.0, -6.0, 3.0]


And this is my code so far:

def nums():
      values = []

while True:
      x = int(input("Enter any amount of numbers or -9999 to quit: "))
      if x == -9999:
            break
 
     values.append(x)
     print values

 return values
 
def allNumAvg(values):
  average = 0
  sum = 0
  for n in values:
  sum = sum + n
  average = sum / len(values)

  return average

def posNumAvg(values):
  x = []
  average = 0

  for i in values:
  if i > 0:
  x.append(i)
  average = sum(x) / len(x)

  return average
 
def negativeNumAvg(values):
  x = []
  average = 0

  for i in values:
  if i < 0:
  x.append(i)
  average = sum(x) / len(x)

  return average
 
nums()
print mylist
allNumAvg(values)


Everything is indendted correctly in my program, idk why it's messing up here.  But when I run it only gets to the nums() part, it doesnt find the averages or anything and I have no idea why


Tutor Answer

(Top Tutor) Daniel C.
(997)
School: UC Berkeley
PREMIUM TUTOR
Studypool has helped 1,244,100 students
Ask your homework questions. Receive quality answers!

Type your question here (or upload an image)

1827 tutors are online

Brown University





1271 Tutors

California Institute of Technology




2131 Tutors

Carnegie Mellon University




982 Tutors

Columbia University





1256 Tutors

Dartmouth University





2113 Tutors

Emory University





2279 Tutors

Harvard University





599 Tutors

Massachusetts Institute of Technology



2319 Tutors

New York University





1645 Tutors

Notre Dam University





1911 Tutors

Oklahoma University





2122 Tutors

Pennsylvania State University





932 Tutors

Princeton University





1211 Tutors

Stanford University





983 Tutors

University of California





1282 Tutors

Oxford University





123 Tutors

Yale University





2325 Tutors