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 :

Erreur dans mon Code ! Laquelle ? Please help!


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 20
    Par défaut Erreur dans mon Code ! Laquelle ? Please help!
    Voilà mon code que j'ai rentré et qui marche presque parfaitement.

    Je sais que le code n'est pas optimisé (ce n'est pas le sujet de mon post), mais je ne comprend pas pourquoi dans un des cas bien précis, il n’interprète pas ce que je veux.

    Normalement, en ayant donné les valeurs qui sont au début du code (scox1), je devrais finir avec un résultats du genre : 0 - 1

    Mais malheureusement, le résultat reste : 0 - 0

    Est-ce qu'une âme charitable pourrait m'expliquer où est l'erreur ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    sco11=21
    sco21=18
    sco31=3
    sco41=21
    sco51=12
    sco61=21
     
    res_sh1d=0
    res_sh1v=0
     
    if(sco11>sco21 and sco11>20):
    	if(sco31>sco41 and sco31>20):
    		res_sh1d+=1
    		res_sh1v+=0
     
    	elif(sco51>sco61 and sco51>20):
    		res_sh1d+=1
    		res_sh1v+=0
     
    elif(sco31>sco41 and sco31>20 and sco51>sco61 and sco51>20):
    	res_sh1d+=1
    	res_sh1v+=0
     
    elif(sco21>sco11 and sco21>20):
    	if(sco41>sco31 and sco41>20):
    		res_sh1d+=0
    		res_sh1v+=1
     
    	elif(sco61>sco51 and sco61>20):
    		res_sh1d+=0
    		res_sh1v+=1
     
    elif(sco41>sco31 and sco41>20 and sco61>sco51 and sco61>20):
    	res_sh1d+=0
    	res_sh1v+=1
     
    print (res_sh1d,"-",res_sh1v)

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 20
    Par défaut
    Je précise que je ne cherche pas à améliorer ce code, je cherche juste l'erreur et la solution en fonction de la façon dont j'ai écrit ce code.

    Je suis en train d'apprendre à programmer avec Python, l'optimisation, je vais voir ça au fur et à mesure.

    Merci dans tous les cas.

  3. #3
    Membre Expert

    Homme Profil pro
    Diverses et multiples
    Inscrit en
    Mai 2008
    Messages
    662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Diverses et multiples

    Informations forums :
    Inscription : Mai 2008
    Messages : 662
    Par défaut
    C’est très simple*: la première condition (if(sco11>sco21 and sco11>20):) est vérifiée, mais aucune des deux sous-conditions (if(sco31>sco41 and sco31>20): et elif(sco51>sco61 and sco51>20):) ne l’est. Donc, res_sh1d et res_sh1v ne sont jamais mis à jour, et restent tous deux à zéro.

    PS*: Ici, le code est facile à suivre de tête, mais lorsque l’on arrive dans des algos un peu plus costauds, il y a un truc vraiment fondamental pour débuguer*: le print()*! Si tu mets des print() dans tes différentes conditions et sous-conditions, tu te rendras compte qu’aucun des blocs de codes modifiant tes deux variables n’est exécuté…

    Évidemment, on peut préférer un débogueur aux print() mais franchement, surtout avec un language comme python, je n’en vois pas trop l’utilité…

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 20
    Par défaut
    Un grand merci pour la réponse !

    Je viens de comprendre mon erreur. Et c'est le plus important, comprendre !

    Je sais que je peu encore simplifier mon code, mais je verrais ça moi même.
    Voici le code maintenant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    sco11=21
    sco21=18
    sco31=12
    sco41=21
    sco51=5
    sco61=21
     
    res_sh1d=0
    res_sh1v=0
     
    if(sco11>sco21 and sco11>20 and sco31>sco41 and sco31>20):
    	res_sh1d+=1
    	res_sh1v+=0
     
    elif(sco11>sco21 and sco11>20 and sco51>sco61 and sco51>20):
    	res_sh1d+=1
    	res_sh1v+=0
     
    elif(sco31>sco41 and sco31>20 and sco51>sco61 and sco51>20):
    	res_sh1d+=1
    	res_sh1v+=0
     
    elif(sco21>sco11 and sco21>20 and sco41>sco31 and sco41>20):
    	res_sh1d+=0
    	res_sh1v+=1
     
    elif(sco21>sco11 and sco21>20 and sco61>sco51 and sco61>20):
    	res_sh1d+=0
    	res_sh1v+=1
     
    elif(sco41>sco31 and sco41>20 and sco61>sco51 and sco61>20):
    	res_sh1d+=0
    	res_sh1v+=1
     
    print (res_sh1d,"-",res_sh1v)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Où l'erreur dans mon code
    Par moonia dans le forum Langage
    Réponses: 3
    Dernier message: 21/06/2006, 14h16
  2. Réponses: 5
    Dernier message: 14/05/2006, 22h41
  3. Erreur dans mon code PHP
    Par jack_1981 dans le forum Langage
    Réponses: 6
    Dernier message: 12/05/2006, 10h01
  4. erreur dans mon code
    Par sacco dans le forum C
    Réponses: 4
    Dernier message: 14/04/2006, 11h50
  5. [VBA][Débutant][export]erreurs dans mon code?
    Par Christophe93250 dans le forum Access
    Réponses: 4
    Dernier message: 06/01/2006, 19h52

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