Принимайте аргументы и вносите в список питонов только четные числа - PullRequest
0 голосов
/ 10 октября 2019

Я написал следующий код Python, но он выдает ошибку

    def myfunc(*args):
         mylist = list()
         for num in args:
              if num%2 ==0:
              mylist = mylist.append(num)
        return mylist

Он выдает следующую ошибку [-2, 4]! = Нет.

Что не так с приведенным выше кодом?

Ответы [ 5 ]

2 голосов
/ 10 октября 2019
mylist = mylist.append(num)

В Python существует соглашение, согласно которому методы, изменяющие объект, возвращают None. list.append - это такая функция: она добавит элемент в список, а затем вернет None. При переназначении ваш mylist становится None;который, очевидно, затем прерывается в следующей итерации, так как None не может быть добавлен к.

Измените строку на

mylist.append(num)
1 голос
/ 10 октября 2019

Ваш код имеет проблему с отступом. Это работает нормально, если вы сделаете отступ правильно. как это:

def myfunc(x):
    mylist = list()
    for num in x:
        if num%2 ==0:
            mylist.append(num)
    return mylist
0 голосов
/ 10 октября 2019

попробуйте это!

def myfunc(*args):
    mylist = []
    for arg in args:
        if num % 2 == 0:
            mylist.append(arg)
    return mylist

убедитесь, что назвали это так

myfunc(-2, 4)
0 голосов
/ 10 октября 2019
def myfunc(*args):
    mylist = list()
    for num in args:
        if num%2 == 0:
            mylist.append(num)
    return mylist

Я думаю, это потому, что вы неправильно используете .append.

0 голосов
/ 10 октября 2019
def myfunc(*args):
        mylist = list()
        for num in args:
                if num%2 == 0:
                        mylist.append(num)

        return mylist

После исправления отступа и удаления присвоения mylist себе - вышеуказанный код работает.

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