Reputation:
I am trying to print out average and median, but I do not understand what I do wrong here, my code will not print out median when my list is even.
def print_hi(name):
sum = 0
count =0
average = 0
list = []
list2 = []
while 1:
enter = float(input('Enter som numbers: '))
string = str(enter)
if enter == 0:
break
else:
count += 1
sum += enter
average = sum/count
list.append(string)
leng = len(list)//2
left = leng-1
raghit = leng+1
if (leng % 2) == 1:
median = (list[leng])
print('Median: ', median)
else:
median = (left+raghit)/2
print('Median : ', median)
print('Average :', round(average, 2))
if __name__ == '__main__':
print_hi('PyCharm')
Upvotes: 0
Views: 81
Reputation: 152
There are couple of errors in your code
raghit
in your code won't be leng+1
, rather it is leng
leng%2==1
, rather it is len(list)%2==1
So the updated code would be
sum = 0
count =0
average = 0
list = []
list2 = []
while 1:
enter = float(input('Enter som numbers: '))
string = str(enter)
if enter == 0:
break
else:
count += 1
sum += enter
average = sum/count
list.append(enter)
leng = len(list)//2
left = leng-1
raghit = leng
if (len(list) % 2) == 1:
median = (list[leng])
print('Median: ', median)
else:
median = (list[left]+list[raghit])/2
print('Median : ', median)
print('Average :', round(average, 2))
Upvotes: 1