Partage
  • Partager sur Facebook
  • Partager sur Twitter

Compréhension petit programme

BAC ISN

Sujet résolu
    17 mai 2015 à 17:15:45

    Bonjour j'ai besoin d'un peu d'aide pour bien comprendre ce programme, je sais que il déplace le chiffre 2 de la liste, en début de liste, mais j'aimerais savoir comment ! (j'ai particulièrement du mal à bien saisir les deux 1er lignes)

    # -*- coding: utf-8 -*-
    """
    Created on Wed Nov 12 10:51:45 2014
    
    @author: nous
    """
    # Decalage à gauche d'une liste
    def shift(Liste,n):
        return Liste[n:] + Liste[:n]
    
    DCF_DATA=[0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 2, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0]
    
    
    print (DCF_DATA)
    
    Position_Fin=DCF_DATA.index(2)
    
    
    print(Position_Fin)
    
    
    DCF_DATA_SHIFT=shift(DCF_DATA,Position_Fin)
    
    print(DCF_DATA_SHIFT)
    


    http://www.noelshack.com/2015-20-1431875266-capture.png

    une fois le programme lancé on obtient :

    [2, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0]

    Merci de vos aides.

    • Partager sur Facebook
    • Partager sur Twitter
      17 mai 2015 à 18:04:37

      Salut,

      Ce programme ne fait pas que déplacer le chiffre 2 en première position, il déplace le chiffre 2 plus toute la partie derrière en première position.

      Si on fait étape par étape, d'abord il y a une recherche de l'indice du chiffre 2 (ligne 16), ensuite tu coupe en deux ta liste ("ta" fonction shift) à l'endroit du chiffre 2 (c'est pour cela que tu rentre son indice dans la fonction). En sortie, tu as une nouvelle liste.

      Avec un exemple plus simple:

      lst = [1, 2, 3, 4, 5]
      
      #Recherche de l'indice du chiffre 3
      ind = lst.index(3)
      
      #Réagencement de la liste
      nv_lst = shift(ind)  #qui correspond à: [3, 4, 5] + [1, 2]
      • Partager sur Facebook
      • Partager sur Twitter
      Précepte: Le mieux est l'ennemi du bien
        17 mai 2015 à 18:52:46

        Ah merci énormément, ça m'aide carrément ! Merci !
        • Partager sur Facebook
        • Partager sur Twitter

        Compréhension petit programme

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown