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 :

Comprendre un morceau de code python


Sujet :

Python

  1. #1
    Membre averti
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Septembre 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Septembre 2015
    Messages : 21
    Par défaut Comprendre un morceau de code python
    Bonjour,
    je souhaiterais comprendre ce que fait cette boucle, comment s'y prendre ?
    Si vous voulez d'autres morceaux du programme je peux le poster.
    Comment faire pour comprendre cela ?
    Merci bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    def Pin_init_affichage(att):            #Handeling of the process that take care of the led system on the front side
        t=0
        print("############### Pin order ############### ")
        for t in range (0,5):
            temp = att
            if (att>9):
                temp = ((i % 100) // 10) + 9
                print("In led list get the x th --------> "+str (temp))
     
            print(Main_List[temp][t])

  2. #2
    Membre Expert
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    918
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 918
    Billets dans le blog
    7
    Par défaut
    Bonjour,
    Comment faire pour comprendre cela ?
    Quel passage du code te pose un souci de compréhension?
    Car ce code est à la portée d'un débutant des premières heures...
    édit: j'ignore d'où vient ce code, mais il est écrit par une personne ne maitrisant pas python....

  3. #3
    Membre averti
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Septembre 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Septembre 2015
    Messages : 21
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (att>9):
                temp = ((i % 100) // 10) + 9
                print("In led list get the x th --------> "+str (temp))
    Je ne vois pas les chiffres exact qui sont calculés par temp ?

    Je pense ensuite que tous ce qui est affiché sont les nombres calculés en temp et je ne comprends pas bien ce qui est écrit ; get the x th ?

    Merci bien

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 699
    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 699
    Par défaut
    Citation Envoyé par DoctorOliver Voir le message
    je souhaiterais comprendre ce que fait cette boucle, comment s'y prendre ?
    Facile! On set met à la place de l'interpréteur Python et on exécute mentalement chaque instruction, au début, en notant l'état des différentes variables sur une feuille de papier.
    Plus tard on saura reconnaître la structure du code et voir combien il y a d'inepties dans ce cas particulier, par exemple, ce bout de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        temp = att
            if (att>9):
                temp = ((i % 100) // 10) + 9
                print("In led list get the x th --------> "+str (temp))
    ne dépend pas de la variable de la boucle t, il n'a donc rien à faire là sauf si la variable i doit se lire t.... mais dans le cas présent, si on passe par cette branche de code, ça va râler => on peut supposer qu'on n'y passe pas et que ce code est inutile.

    La première instruction ligne 2, t=0 ne sert à rien non plus puisque on réinitialise t avec le for t in range(...).

    Du coup, ça se résume à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    def Pin_init_affichage(att):            #Handeling of the process that take care of the led system on the front side
        print("############### Pin order ############### ")
        for t in range (0,5):
            print(Main_List[att][t])
    Pour le reste, apprendre à lire du code est ce qu'on fait en essayant de faire les exercices proposés dans tous les tutos. S'ils ne marchent pas du premier coup, il va bien falloir se mettre à la place de l'interpréteur Python pour comprendre ce qui ne va pas.
    Et c'est plus facile de commencer comme ça car, les exercices proposent des structures simples avec des types simples qu'on peut facilement visualiser sur une feuille de papier.

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

  5. #5
    Membre Expert
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    918
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 918
    Billets dans le blog
    7
    Par défaut
    Je n'ai rien à ajouter à ce qui a été dit, sauf à t'inviter à jeter ce code et à ouvrir un tutoriel sur python. D'où provient-il?

  6. #6
    Membre averti
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Septembre 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Septembre 2015
    Messages : 21
    Par défaut
    Citation Envoyé par Hominidé Voir le message
    Je n'ai rien à ajouter à ce qui a été dit, sauf à t'inviter à jeter ce code et à ouvrir un tutoriel sur python. D'où provient-il?
    Et si je vous montre un peu plus le programme, cela ne sert toujours à rien ? Cela a été fait par un étudiant 4 eme année ingénieur
    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
    i=int(sys.argv[1])
    tens = ((i % 100) // 10)*10
    units = (i % 10)
    print(tens, units)
     
    def Pin_init_affichage(att):            #Handeling of the process that take care of the led system on the front side
        t=0
        print("############### Pin order ############### ")
        for t in range (0,5):
            temp = att
            if (att>9):
                temp = ((i % 100) // 10) + 9
                print("In led list get the x th --------> "+str (temp))
     
            print(Main_List[temp][t])

  7. #7
    Membre Expert
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    918
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 918
    Billets dans le blog
    7
    Par défaut
    Et si je vous montre un peu plus le programme, cela ne sert toujours à rien ?
    Je n'ai dit qu'il servait à rien. S'il fait ce qu'on attend de lui, il sert.
    Ce que j'ai dit c'est que c'est écrit par une personne qui ne maîtrise pas python et donc 'à jeter' dans le sens qu'il ne doit pas servir d'exemple. Si je devais apprendre le Chinois, autant l'apprendre avec une personne qui en maîtrise la syntaxe...
    Ceci étant dit, j'aurai probablement dû employer un autre terme.

  8. #8
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 816
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 816
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par DoctorOliver Voir le message
    Et si je vous montre un peu plus le programme, cela ne sert toujours à rien ?
    Alors déjà tu vas commencer par me dire où, dans les posts des précédents intervenants, il a été dit (ou même seulement suggéré) que ce programme ne sert à rien !!! Il a juste été dit "cette instruction ne sert à rien" avec comme explication que l'instruction en question était annulée par celle du dessous, explication claire qui montre effectivement l'inutilité de ladite instruction et que tu aurais pu étudier au lieu de venir la ramener avec ton programme écrit par un étudiant ingénieur (comme si cela était un gage de qualité )

    Citation Envoyé par DoctorOliver Voir le message
    Cela a été fait par un étudiant 4 eme année ingénieur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    tens = ((i % 100) // 10)*10
    units = (i % 10)
    Donc là, visiblement l'étudiant de 4° année ingénieur il ne maitrise pas les priorités des opérations de l'arithmétique élémentaire qu'on apprend au primaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    tens = i % 100 // 10 * 10
    units = i % 10
    C'est pas grave de mettre des parenthèses, juste que ça force l'UAL à les analyser et les traiter...

    Citation Envoyé par DoctorOliver Voir le message
    print("############### Pin order ############### ")
    print("{0} Pin order {0}".format("#" * 15))...

    Citation Envoyé par DoctorOliver Voir le message
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        for t in range (0,5):
            temp = att
            if (att>9):
                temp = ((i % 100) // 10) + 9
                print("In led list get the x th --------> "+str (temp))
    Pareil, déjà c'est if att > 9 et temp = i % 100 // 10 + 9 marchera tout aussi bien mais surtout comme l'a dit wiztricks, un test dans une boucle sur une variable qui n'est pas modifiée durant la boucle n'a rien à faire là (sauf à faire perdre du temps CPU pour rien). Mais bon, comme je ne suis pas en 4° année d'ingénieur ce que j'en dis...

    Donc conclusion : ce n'est pas parce que ton pote est un crack dans sa branche qu'il écrit forcément du Python correct.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  9. #9
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 699
    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 699
    Par défaut
    Salut,

    Citation Envoyé par DoctorOliver Voir le message
    Et si je vous montre un peu plus le programme, cela ne sert toujours à rien ?
    Un programme a été conçu pour faire le quelque chose qu'on attend de lui.
    S'il fonctionne et qu'on n'y comprend rien, on le range précieusement dans son coin.

    S'il ne marche pas, déjà il faut savoir à quoi il est destiné pour y retrouver ses petits quelque soit la façon dont le code a été écrit (le Python que je code ne sera pas le même que celui d'un autre, tant que ça fait le job, c'est bon même si on peut discuter du pythonique de la chose ou de l'algo. utilisé).

    Citation Envoyé par DoctorOliver Voir le message
    Cela a été fait par un étudiant 4 eme année ingénieur
    On voit que c'est du code de débutant... Après on débute a tous les ages et après n'importe quelle formation mais ça prend du temps d'apprendre à coder (et dans un programmeur débutant dans le milieu professionnel restera débutant pendant quelques années).

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

  10. #10
    Membre Expert
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    918
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 918
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par wiztriks
    On voit que c'est du code de débutant... Après on débute a tous les ages et après n'importe quelle formation mais ça prend du temps d'apprendre à coder (et dans un programmeur débutant dans le milieu professionnel restera débutant pendant quelques années).
    Apprendre à coder et avoir une culture du code prennent certainement du temps.
    Assimiler les fondamentaux de python et sa syntaxe beaucoup moins

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

Discussions similaires

  1. comprendre une partie du code
    Par mademoizel dans le forum ASP.NET
    Réponses: 4
    Dernier message: 09/02/2007, 11h40
  2. comprendre une partie de code
    Par menuge dans le forum Langage
    Réponses: 24
    Dernier message: 03/09/2006, 20h44
  3. Aide pour comprendre et modifier un code
    Par metal85 dans le forum Assembleur
    Réponses: 1
    Dernier message: 06/08/2006, 09h47
  4. Réponses: 12
    Dernier message: 08/02/2005, 23h42
  5. [JSP] [include] inclure un morceau de code
    Par viena dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 06/01/2005, 11h51

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