Используя функцию list [] - PullRequest
       1

Используя функцию list []

0 голосов
/ 06 апреля 2020

Как я могу получить список в качестве вывода вместо цифр, печатающих одно под другим для моего кода:

def factors(n):


    for i in range(1, n):
        if n % i == 0:

            print(i)


prime_factors(28)

Как я могу получить вывод в виде списка

Я пытался :

def factors(n):
    lst = []
    for i in range(1, n):
        if n % i == 0:

            lst.append(i)
        return(lst)


factors(28)

но это дает ошибку

Ответы [ 3 ]

2 голосов
/ 06 апреля 2020

"lst" не существует вне области действия if. Вы должны объявить «lst» перед оператором if, и, вероятно, вы хотите перед for. Еще больше вы хотите распечатать список за пределами области видимости

def factors(n):

    lst = []
    for i in range(1, n):
        if n % i == 0:
            lst.append(i)
    print(lst)


factors(28)
1 голос
/ 06 апреля 2020

В вашем коде есть две небольшие проблемы. Вы устанавливаете lst как пустой список для каждой итерации l oop, и функция, вероятно, должна возвращать список. Это работает:

def factors(n):
    lst = []
    for i in range(1, n):
        if n % i == 0:
            lst.append(i)
    return lst

print(factors(28))
0 голосов
/ 06 апреля 2020

это то, что упрощенный метод для списка ...

def factors(n):
    list1=[i for i in range(1,n) if n%i==0]
    print(list1)

factors(28)

надеюсь, что это полезно ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...