+ 1

Добрый день. Помогите решить задачу по Python цены на жилье. Мой код ниже. Не понимаю в чём ошибка.

import numpy as np data = np.array([150000, 125000, 320000, 540000, 200000, 120000, 160000, 230000, 280000, 290000, 300000, 500000, 420000, 100000, 150000, 280000]) stat=np.std(data) res_mean=np.mean(data) for n in data: if (n >= stat-res_mean and n<=stat+res_mean): print((sum(n)/len(data))*100)

11th Feb 2022, 11:07 AM
Helen
Helen - avatar
9 Respostas
+ 2
Вы не правильно используете функцию sum(), для неё нужно несколько аргументов, но она вам не нужна. И условие неправильно записали, нужно: if (n > res_mean-stat and n<stat+res_mean) Вам нужно найти количество домов соответствующих данному условию, а не их сумму и вывод результата должен быть за пределами цикла. Справитесь? ☺️
11th Feb 2022, 1:02 PM
Solo
Solo - avatar
+ 2
☺️ n - это цена дома. Какая же у цены может быть длина? Это всё равно что написать len(1). Количество нужных домов Вам нужно посчитать, для этого Вы и создали цикл, а уж потом произвести расчёт и распечатать. Я надеялся Вы поняли.
11th Feb 2022, 2:26 PM
Solo
Solo - avatar
+ 2
😃 это потому что Вы понаписали кучу ненужных скобок и сами запутались в них. И помоему вы не сделали отступ для z+=1
11th Feb 2022, 2:30 PM
Solo
Solo - avatar
+ 2
Точно. Спасибо большое! import numpy as np data = np.array([150000, 125000, 320000, 540000, 200000, 120000, 160000, 230000, 280000, 290000, 300000, 500000, 420000, 100000, 150000, 280000]) stat=np.std(data) res_mean=np.mean(data) z=0 for n in data: if (n >res_mean-stat and n<stat+res_mean): z += 1 print((z/len(data))*100) Работает😊
11th Feb 2022, 2:41 PM
Helen
Helen - avatar
+ 2
Ура-а 👏👏👏 рад за Вас 😃 А теперь вспомните как в numpy учили использовать условие в качестве индекса массива и выполните это задание без использования цикла ☺️
11th Feb 2022, 2:48 PM
Solo
Solo - avatar
+ 1
Вот другой вариант и все равно не идёт import numpy as np data = np.array([150000, 125000, 320000, 540000, 200000, 120000, 160000, 230000, 280000, 290000, 300000, 500000, 420000, 100000, 150000, 280000]) stat=np.std(data) res_mean=np.mean(data) z=0 for n in data: if (n >res_mean-stat and n<stat+res_mean): z+=1 print((z)/len(data))*100)
11th Feb 2022, 2:27 PM
Helen
Helen - avatar
+ 1
import numpy as np data = np.array([150000, 125000, 320000, 540000, 200000, 120000, 160000, 230000, 280000, 290000, 300000, 500000, 420000, 100000, 150000, 280000]) stand = np.std(data) # 130053.69984644804 me = np.mean(data) # 260312.5 print(len(data[(data > me - stand) & (data < me + stand)])/len(data)*100)
6th Dec 2022, 5:23 PM
Anrij Vinichenko 🇺🇦
Anrij Vinichenko 🇺🇦 - avatar
0
import numpy as np data = np.array([150000, 125000, 320000, 540000, 200000, 120000, 160000, 230000, 280000, 290000, 300000, 500000, 420000, 100000, 150000, 280000]) stat=np.std(data) res_mean=np.mean(data) for n in data: if (n >res_mean-stat and n<stat+res_mean): a=((len(n)/len(data))*100) print(a)
11th Feb 2022, 1:12 PM
Helen
Helen - avatar
0
Не идёт (
11th Feb 2022, 1:12 PM
Helen
Helen - avatar