# [SOLVED] Basketball players problem

import statistics players = [180, 172, 178, 185, 190, 195, 192, 200, 210, 190] statistics.stdev(players) # std is 11.1 , mean is 189.2 So, I need to output how many players are between (189.2 - 11.1) to (189.2 + 11.1)

3/16/2021 12:05:57 PM

Kristo Kallfa46 Answers

New AnswerThe correct answer is: players = [180, 172, 178, 185, 190, 195, 192, 200, 210, 190] mean = sum(players)/len(players) stdvar = (sum((v-mean)**2 for v in players)/len(players))**0.5 low, high = mean-stdvar,mean+stdvar count = len([v for v in players if low < v < high]) print(count)

players = [180, 172, 178, 185, 190, 195, 192, 200, 210, 190] import numpy as np mean = np.mean(players) standard_deviation = np.std(players) variance = np.var(players) result = 0 for i in players: if i >= mean-standard_deviation and i <= mean+standard_deviation: result += 1 print(result)

import numpy as np players = [180, 172, 178, 185, 190, 195, 192, 200, 210, 190] data = np.array(players) m = np.mean(data) std = np.std(data) under = m - std above = m + std fit = data[(data>under) & (data<above)] print(len(fit))

yes, you must loop over the array and count how many values matches the conditions ;) finally, just output the count...

players = [180, 172, 178, 185, 190, 195, 192, 200, 210, 190] mean = sum(players) / len(players) std = (sum([(i - mean) ** 2 for i in players]) / len(players)) ** 0.5 print(len(list(filter(lambda x: mean - std < x < mean + std, players))))

All it was wrriten was just :”players = [180,172,178,185,190,195,192,200,210,190] My code is : import statistics players = [180, 172, 178, 185, 190, 195, 192, 200, 210, 190] mean = (180 + 172 + 178 + 185 + 190 + 195 + 192 + 200 + 210 + 190) / 10 statistics.stdev(players) So, I know the mean and the std, all I have to do now is to check how many players are in that range... like I have to use smth like for players in range... idk...any idea?

well, you're right... where is your coding attempt? we need to see what you've tried so far to be able to help ^^

Coalemus because your for loop should throw an error, as you're trying to iterate in a range of float (decimal) values, while it expect intergers (whole numbers)... anyway, you should post your own question to be helped further ^^

kensy Nicolle Gutierrez Flores kindly stop spamming others threads, and rather post your own question in a brand new thread, by following the Q&A guidelines (accurate and short title, useful tags and explanation of your specific problem in the description field with your code attempt provided)...

The given code includes a list of heights for various basketball players. You need to calculate and output how many players are in the range of one standard deviation from the mean. players = [180, 172, 178, 185, 190, 195, 192, 200, 210, 190] mean=sum(players)/len(players) var=sum((x-mean)**2 for x in players) std=var**0.5 for players in range(int(mean-std),int(mean+std)): print(players) what might be the issue with this code??

import math players = [180, 172, 178, 185, 190, 195, 192, 200, 210, 190] sum = 0 for nums in players: sum+=nums mean = sum / len(players) new_list = [] for i in players: new_list.append(mean-i) new_sum = 0 for k in new_list: new_sum+=k**2 variance = new_sum/len(players) deviation = math.sqrt(variance) #print(variance) #print(deviation) #print(round(variance)) #print(round(deviation)) range1 = mean - deviation range2 = mean + deviation num_players = [] for j in players: if j in range(round(range1),round(range2)): num_players.append(j) else: pass print(len(num_players)) This is my answer you can check it out

My way: players = [180, 172, 178, 185, 190, 195, 192, 200, 210, 190] sum =0 count = 0 count1 = 0 sum_sqr = 0 for i in players: sum += i count += 1 mean = sum / count for i in players: sqr = (mean-i)**2 sum_sqr += sqr var = sum_sqr / count std = var**(1/2) for i in players: raz1 = mean - std raz2 = mean + std if (i > raz1 and i < raz2): count1 += 1 print(int(count1))

# Simple and for beginners and maths lovers players = [180, 172, 178, 185, 190, 195, 192, 200, 210, 190] x = 0 y = 0 z = 0 for p in players: y += p m = y/len(players) for p in players : z = z + (p - m)**2 s = (z/len(players))**(1/2) for p in players : if p > m - s and p < m + s : x += 1 print(x)

Doing it without the statistics module, I solved it with: from math import sqrt data = [180, 172, 178, 185, 190, 195, 192, 200, 210, 190] mean = sum(data) / len(data) pre_variance = list(map(lambda number: (number - mean) * (number - mean), data)) variance = sum(pre_variance) / len(pre_variance) std = sqrt(variance) result = list(filter(lambda number: number > (mean - std) and number < (mean + std), data)) print(len(result))

players = [180, 172, 178, 185, 190, 195, 192, 200, 210, 190] mean=sum(players)/len(players) count=0 sum=0 for c in players: sum+=(c-mean)**2 variance=sum/len(players) std=(variance)**(1/2) a,b=mean-std,mean+std for c in players : if a<c<b: count+=1 print(count)

players = [180, 172, 178, 185, 190, 195, 192, 200, 210, 190] group =[] ae=[] mean=sum(players )/len(players ) for player in players : a = (player-mean)**2 ae.append(a) sd = (sum(ae)/len(ae))**0.5 upp = mean - sd down = mean +sd for bb in players: if bb in range(upp, down): group.append(bb) print(len(group )) please what is wrong with this code

import math players = [180, 172, 178, 185, 190, 195, 192, 200, 210, 190] new_list = [] sum_of_players = 0 for i in players : sum_of_players += i mean_square_difference = (i-mean)**2 new_list.append(mean_square_difference) n = len(players ) mean = sum_of_players /n sum_of_newlist = 0 for j in new_list: sum_of_newlist += j mean_of_square_difference = sum_of_newlist/(n-1) variance = math.sqrt(mean_of_square_difference) print(variance) print(mean)