IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Message d'erreur : Can only concatenate list (not "int") to list


Sujet :

Python

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2016
    Messages : 6
    Points : 15
    Points
    15
    Par défaut Message d'erreur : Can only concatenate list (not "int") to list
    Bonjour à tous,
    J'ai un problème à cause d'un message d'erreur que je n'arrive pas à résoudre : " Can only concatenate list (not int) to list "
    Voici la partie de mon code concernée (ligne en gras et rouge) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for a in range(nbT):
    
    if L[a][0][0]+L[a][1][0]<0 or L[a][0][0]+L[a][1][0]>=m or L[a][0][1]+L[a][1][1]<0 or L[a][0][1]+L[a][1][1]>=n:
    
    L[a][0]=[-L[a][0][0],-L[a][0][1]]
    Je ne vois pas pourquoi Python me reproche d'essayer de faire rentrer un entier dans une liste puisque j'additionne simplement à chaque fois deux entiers et compare leur somme à un autre entier (soit 0, soit m soit n)
    Merci par avance de votre aide!

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 242
    Points : 36 699
    Points
    36 699
    Par défaut
    Salut,

    Par principe, Python a toujours raison... Donc à vous de vérifier que le contenu est bien un entier (i.e. correspond à ce que vous attendiez qu'il soit et non autre chose...).
    Et si vous ne savez pas utiliser un deboggueur, faire "print" du contenu fonctionne bien aussi.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2016
    Messages : 6
    Points : 15
    Points
    15
    Par défaut
    Merci de votre réponse,
    Je viens d'essayer de faire afficher chaque L[a][...][...] et ce sont bien des entiers...

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 242
    Points : 36 699
    Points
    36 699
    Par défaut
    Citation Envoyé par clara1908 Voir le message
    Je viens d'essayer de faire afficher chaque L[a][...][...] et ce sont bien des entiers...
    Eh bien, vous n'avez plus qu'à expliquer aux développeurs du langage (avec un petit programme reproduisant votre étrangeté à l'appui) qu'il y a un bug dans Python (i.e. çà invente une liste là où il y a un entier).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2016
    Messages : 6
    Points : 15
    Points
    15
    Par défaut
    Puisque tu n'as pas l'air de me croire et de me prendre au sérieux voici une copie écran de mon script : tu peux voir, dans le cadre rouge, les valeurs des différents L[a][...][...] et constater que... Ce sont des entiers ! Je n'ai jamais accusé Python d'avoir tort, j'aimerai simplement de l'aide pour comprendre d'où vient précisément le problème. Nom : Prog.png
Affichages : 2558
Taille : 80,5 Ko

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 242
    Points : 36 699
    Points
    36 699
    Par défaut
    Citation Envoyé par clara1908 Voir le message
    Puisque tu n'as pas l'air de me croire et de me prendre au sérieux voici une copie écran de mon script : tu peux voir, dans le cadre rouge, les valeurs des différents L[a][...][...]
    Bah, déjà vous n'affichez que 3 valeurs L[a][...][...] alors qu'il y en a 4...
    Commencez déjà par prendre Python au sérieux lorsqu'il dit "TypeError: can only concatenate list (not "int") to list".
    Et postez du code qui permette de reproduire simplement votre problème plutôt que des copies d'écran dont on ne peut rien faire.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Pourrais-tu faire un petit code de quelques lignes avec tes vraies valeurs de départ et qui reproduit le problème (donne l'erreur), de sorte qu'on puisse l'exécuter avec un simple copier-coller?
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  8. #8
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2016
    Messages : 6
    Points : 15
    Points
    15
    Par défaut
    Bonjour,
    En fait cela est compliqué car la fonction utilise d'autres fonctions créées dans le jeu. Je peux vous communiquer l'intégralité de mon jeu (je l'ai réduit pour n'avoir que les fonctions essentielles) vous pouvez copier coller et éxécuter (le fichier est en pièce jointe). Toutes les fonctions marchent, y compris celle qui contient la ligne posant problème, le problème apparait qu lorsque l'on "compile" les fonctions dans la fonction "play()" qui enchaine une à une les fonctions: le message d'erreur s'affiche. Dit autrement, la fonction deplacetermite marche si on l'appelle à l'écran et qu'on la teste pour certaines valeurs mais dès que l'on appelle play() la ligne 36 pose soucis... Par exemple vous pouvez essayer de faire "deplacetermite(4,4,4,0.5,1)" : ça marche, aucun message d'erreur concernant la ligne 36. Par contre si vous faites par exemple play(2) avec 2 le nombre de fois que le joueur joue, le message d'erreur s'affiche.
    Merci
    Clara.
    Fichiers attachés Fichiers attachés

  9. #9
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 242
    Points : 36 699
    Points
    36 699
    Par défaut
    Salut,

    Lorsqu'on trouve des constructions comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                    for k in range(2):
                        L[a][0][k]=[L[a][0][k]+L[a][1][k]]
    on voit d'où viennent les listes et on comprend pourquoi:
    Citation Envoyé par clara1908
    Par contre si vous faites par exemple play(2) avec 2 le nombre de fois que le joueur joue, le message d'erreur s'affiche.
    et donc, il n'y a pas de bug dans Python.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  10. #10
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2016
    Messages : 6
    Points : 15
    Points
    15
    Par défaut
    Merci de votre réponse
    J'ai mis des parenthèses à la place des crochets autour de L[a][0][k]+L[a][1][k] mais je ne suis pas sûre d'avoir compris ce que vous voulez me dire... Le problème viendrait de cet endroit du code cest ça?!

  11. #11
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2016
    Messages : 6
    Points : 15
    Points
    15
    Par défaut
    C'est bon ça marche, merci à vous!

Discussions similaires

  1. [Python 2.X] [can only concatenate list (not "int") to list] Merdouille a bord!
    Par sofianterki dans le forum Général Python
    Réponses: 1
    Dernier message: 23/12/2014, 11h27
  2. Message d'erreur 'can not find symbol'
    Par Clotilde dans le forum Langage
    Réponses: 6
    Dernier message: 30/04/2009, 18h14
  3. Réponses: 3
    Dernier message: 31/03/2008, 14h58
  4. Réponses: 1
    Dernier message: 17/07/2007, 13h35
  5. Réponses: 5
    Dernier message: 12/03/2006, 19h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo