He escrito el siguiente código de Python, pero me está arrojando un error

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

Me arroja el siguiente error [-2, 4]! = Ninguno.

¿Qué hay de malo con el código anterior?

-2
Raghu 10 oct. 2019 a las 06:13

5 respuestas

La mejor respuesta

Su código tiene un problema de sangría. Funciona bien si lo sangra correctamente. Me gusta esto:

def myfunc(x):
    mylist = list()
    for num in x:
        if num%2 ==0:
            mylist.append(num)
    return mylist
1
Usama 10 oct. 2019 a las 03:23
def myfunc(*args):
        mylist = list()
        for num in args:
                if num%2 == 0:
                        mylist.append(num)

        return mylist

Después de corregir la sangría y eliminar la asignación de mylist a sí mismo, el código anterior funciona.

0
Pravar Jawalekar 10 oct. 2019 a las 03:21
mylist = mylist.append(num)

Es una convención en Python que los métodos que mutan el objeto devuelven None. list.append es una función de este tipo: agregará un elemento a la lista y luego devolverá None. Por reasignación, su mylist se convierte en None; que obviamente se rompe en la siguiente iteración, ya que None no se puede agregar.

Cambia la línea a solo

mylist.append(num)
2
Amadan 10 oct. 2019 a las 03:16

¡prueba esto!

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

Asegúrate de llamarlo de esta manera

myfunc(-2, 4)
0
mindless-overflow 10 oct. 2019 a las 03:25
def myfunc(*args):
    mylist = list()
    for num in args:
        if num%2 == 0:
            mylist.append(num)
    return mylist

Creo que es porque estás usando .append de manera incorrecta.

0
Giallo 10 oct. 2019 a las 03:22
58314930