Не понимаю, почему функция выводит None

Рейтинг: 0Ответов: 1Опубликовано: 07.02.2023

Функция должна выводить список всех делителей передаваемого ей числа (кроме себя и единицы)

def vse_deliteli(integer):
    vsedeliteli = list()
    for i in range(1, integer):
        if integer % i == 0:
            vsedeliteli.append(i)
    return vsedeliteli.remove(1)
print(vse_deliteli(25))

Результат None, причем проблема именно в list.remove, т. к. когда его убираю, все работает нормально.

def vse_deliteli(integer):
    vsedeliteli = list()
    for i in range(1, integer):
        if integer % i == 0:
            vsedeliteli.append(i)
    return vsedeliteli
print(vse_deliteli(25))

[1, 5]

Не могу понять, почему получается None

Ответы

▲ 2Принят

Возвращайте не процедуру, а список. вот так будет работать как вы хотите:

def vse_deliteli(integer):
    vsedeliteli = []
    for i in range(1, integer):
        if integer % i == 0:
            vsedeliteli.append(i)

    vsedeliteli.remove(1)

    return vsedeliteli