Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

Программисты, спасайте!!!! Подскажите, пожалуйста, где я допустила ошибку в коде на питоне и подправьте мой код((

Условие:

Напишите функцию g_avg_list(a) (greater than average), которая возвращает список, состоящий из элементов, которые больше среднего значения списка.

Основная часть программы должна выглядеть так:

a = input_list()
print(g_avg_list(a))
Если результат работы функции не определен, функция должна выдать None.

Sample Input:

4
1
2
3
4
Sample Output:

[3, 4]

Мой код:

def input_list():
sp = []
n = int(input())
for i in range(n):
a = int(input())
sp.append(a)
return sp

def average_list(b):
if len(b) < 1: #если количество элементов в списке меньше 1, то не получится посчитать среднее арифм
return 0
else:
summ = 0
count = 0
for i in range(len(b)):
summ += b[i]
count += 1
return summ / count

def g_avg_list(b):
q = []
for i in range(len(b)):
if b[i] > v and v != 0:
q.append(b[i])
return q
elif v == 0:
return None



b = input_list()
v = average_list(b)
print(g_avg_list(b))


У меня в конечном итоге то пустой список, то только одно число вместо двух. Я все играюсь со значением v, но чет не помогает. Пожалуйста, спасайте меня, доработайте код((

По дате
По рейтингу
Аватар пользователя
Новичок
12345
 def g_avg_list(a): 
    a_list = set([i for i in a if i > (sum(a) / len(a))]) 
    return a_list if a_list else None 
a = list(map(int, input().split())) 
print(g_avg_list(a)) 
Аватар пользователя
Гуру
1234567891011121314151617181920212223242526272829303132333435
 def input_list():  
    sp = []  
    n = int(input("Введите кол-во чисел в списке: "))  
    for i in range(n):  
        a = int(input(f'Введите {i} элемент списка'))  
        sp.append(a) 
    return sp  
 
def average_list(b):  
    if len(b) < 1: #если количество элементов в списке меньше 1, то не получится посчитать среднее арифм  
        return 0  
    else:  
        summ = 0  
        count = 0  
        for i in range(len(b)):  
            summ += b[i]  
            count += 1  
    return summ / count  
 
def g_avg_list(b):  
    q = []  
    for i in range(len(b)):  
        if b[i] > v and v != 0:  
            q.append(b[i])  
        elif v == 0:  
            return None 
    return q 
 
 
 
b = input_list() 
print(b) 
v = average_list(b) 
print(f'Среднее арифметическое : {v}') 
print(g_avg_list(b))  

было больно