Python - unsupported operand type(s) de l' %: 'liste' et de 'int'

J'ai eu un coup d'oeil à d'autres questions sur stackoverflow, mais elles sont différentes et ne semblent pas s'appliquer à cette question, alors voilà.

J'ai écrit un script simple qui me donne l'impression de tous les nombres compris entre 1-49 et le met dans une liste à l'aide de la fonction range.

Maintenant, j'ai défini une fonction pour savoir quels sont les nombres sont impairs et ce que les chiffres sont même, voici mon code:

def check(number):
    if number%2==0:
        print "Even Numbers:",(number)
    else:
        print "Odd Numbers:",(number)


a = range(1,50)

print a

check(a)

J'obtiens l'erreur suivante lorsque je lance le script:

unsupported operand type(s) for %: 'list' and 'int'

Donc je sais que cela signifie que l'opérateur % ne peut pas ne pas soutenir les "listes" ou "services de renseignements", mais comment puis-je résoudre ce problème?

J'ai essayé ceci:

def check(number):
    if number%2==0:
        print "Even Numbers:",(number)
    else:
        print "Odd Numbers:",(number)


a = range(1,50)

b = str(a)

check(str(a))

Mais l'erreur:

Traceback (most recent call last):
  File "showEvenNumbers.py", line 12, in <module>
    check(str(a))
  File "showEvenNumbers.py", line 2, in check
    if number%2==0:
TypeError: not all arguments converted during string formatting

Donc je suis un peu largué quoi faire.

Toute aide serait grandement appréciée.

  • Vous avez besoin d'itérer sur la liste d'une certaine façon.
  • Merci mat, j'ai eu un blanc moment. J'ai réalisé après que j'ai posté la question de Blender et + vous m'a fait penser à ce que j'essayais de faire. Merci 🙂