0
votes

Avoir du mal à convertir la liste en entiers et itération à travers la liste

J'ai du mal à comprendre comment convertir une liste en entiers et itérant une fonction sur chacun de ces éléments. Je souhaite que la fonction vérifie chaque élément et que chaque élément dans la liste soit converti en entiers. XXX


2 commentaires

Si Année depuis des années> = 1583: Qu'attendez-vous que cela est censé faire? Semble être un mashup de pour et si


Vous l'avez déjà converti sur une liste de int s, ici: année = liste (carte (int, années)) à itérer cette liste juste faire pour x En année: ...


3 Réponses :


0
votes

Conversion de la liste des chaînes à la liste des INT peut simplement être faite avec la compréhension de la liste:

int_list = [INT (année) pour l'année de l'année] code> P>

Un autre visible Le problème dans votre code comprendrait la portée des variables et la transmission des arguments à fonctionner. p>

Si vous iTERE des années, passez l'article de l'année à votre fonction et utilisez dans la portée de la fonction P>

def isLeap(year):
...

for int_year in int_list:
    isLeap(int_year)


0 commentaires

0
votes

donné ce que vous essayez de faire, je pense que c'est une façon de le faire, combinant un pour code> en boucle pour des éléments que vous passez à la fonction (au format de liste), avec le Si-elif-elif-elife code> Conditions que vous avez énoncées.

25 Is not a Gregorian Calendar Year.
1955 Is a Gregorian Calendar Year.
2000 Is a Gregorian Calendar Year.
1581 Is not a Gregorian Calendar Year.
1321 Is not a Gregorian Calendar Year.
1285 Is not a Gregorian Calendar Year.
4365 Is a Gregorian Calendar Year.
4 Is not a Gregorian Calendar Year.
1432 Is not a Gregorian Calendar Year.
3423 Is a Gregorian Calendar Year.
9570 Is a Gregorian Calendar Year.


2 commentaires

Ne boucle pas sur les indices, boucle directement sur la liste elle-même ...


Merci, je me suis concentré sur autre chose et je me suis gâché.



0
votes

Vous devriez faire votre conversion de la chaîne vers INT en dehors de votre iSleap Fonction:

pour année sur carte (int, années):

Votre fonction doit accepter un paramètre d'année:

def isleap (année)

Et votre test devrait simplement être: si année> = 1583 # etc.

Cependant, il existe également un problème logique ici: parce que vous utilisez si / elif , vous ne déterminerez jamais si quelque chose est une année bissextile, car l'une de vos deux premières déclarations sera toujours être correct. (C'est soit> = 1583, soit <1583; aucune autre condition ne sera vérifiée.)


0 commentaires