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 :

chercher a trouver indexe


Sujet :

Python

  1. #1
    Membre très actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 208
    Par défaut chercher a trouver indexe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    def matrice(r,c):
    ...      M = []
    ...      for x in range(r):
    ...          row = []
    ...          for y in range(c):
    ...              row.append(x*c + y + 1)
    ...          M.append(row)
    ...      return M
    ... 
    >>> def col(n,m) :
    ...     n = matrice(r,c)
    ...     return : m = M[0][2] + M[1][2]
      File "<stdin>", line 3
        return : m = M[0][2] + M[1][2]
    je cherche une fonction col qui permet d'extraire de M tout les indexe
    exemple indexe 3

  2. #2
    Membre très actif Avatar de Kurodiam
    Inscrit en
    Décembre 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 208
    Par défaut
    Déjà , regarde ce que désigne l'index 3 dans ta matrice .Une simple addition ne suffit pas pour extraire un élément ...

  3. #3
    Membre émérite

    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Août 2010
    Messages : 662
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    def col(n,m) :
        n = matrice(r,c)
        return : m = M[0][2] + M[1][2]
    Qu'est-ce que vous pensiez faire en écrivant cette fonction?

    Ju

  4. #4
    Membre très actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 208
    Par défaut
    [QUOTE=Julien N;7648579]Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    def col(n,m) :
        n = matrice(r,c)
        return : m =
    M[0][2] + M[1][2] sa donne l'indexe 3 de [[1,2,3][4,5,6]]
    oui il sert a rien la fonction :s mais j'arrive pas a trouver

  5. #5
    Membre émérite

    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Août 2010
    Messages : 662
    Par défaut
    Hmm je pense que vous devriez reformuler le problème parce que ça n'a pas l'air clair pour vous. D'ailleurs vu comment vous le présentez, ça ne l'ai pas pour moi non plus...

    Admettons que M soit définie comme suit:
    M est une matrice de taille 2,3 (2 lignes, 3 colonnes). Si vous faites ceci:
    Alors m vaut 3+5 , soit 8.

    Qu'entendez vous par "l'indexe 3"? La valeur "3" présente dans la matrice n'est pas un "indexe". L'indexe de cette valeur pourrait être la "position" dans la matrice, soit le numéro de la ligne et de la colonne. Si vous souhaitez obtenir le numéro de le colonne alors dans ce cas, et uniquement dans ce cas, elle est de 2 (on compte depuis 0 en python la très grande majorité des cas).

    Je voudrais pas paraître désobligeant, mais vous donnez l'impression de ni connaître la notion de matrice, ni les bases du langage...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    def col(n,m) :
        n = matrice(r,c) # n et m devrait être les entrées de la fonction (que vaut r et c???)
        return : m = M[0][2] + M[1][2] # pas de ":" après return, ni m=
    Ju

  6. #6
    Membre très actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 208
    Par défaut
    bonjour,

    enfaite ce que je cherche c'est indexe2 pas 3 pardon de la matrice suivante

    M=[[1,2,3][4,5,6]] donc evidament la colonne 2 que je cherche de cette matrice

    qui vaut 2, 5

    mais je ne sais pas comment le formler sur python

    a mon avis pour 2 c'est M[0][2]
    5 c'est M[1][2]

    apres je cherche a faire une fonction col pour n'import quelle matrice de n ligne et de m colonne pour pouvoir avoir exemple col(3) c'est a dire indexe 3 de la matrice que j'aurais nommé M

    mais le probléme je ne sais pas comment faire tout sa en code, je demande de l'aide justement pour pouvoir améliorer mon niveau

    merci et je vous trouve pas désobligeant mais juste déja je suis déprimer de ne pas arriver a faire tout sa toute seul

    voici l'exercice

    codez une fonction col2() qui permet d'extraire de M tous les éléments d'index 2"; généralisez la
    fonction col() pour n'importe quelle colonne d!une matrice de n lignes par m colonnes";


    cordialement

  7. #7
    Membre émérite

    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Août 2010
    Messages : 662
    Par défaut
    Salut,

    OK, là c'est bien plus clair.

    Notez que votre matrice devrait s'écrire comme ceci : M = [[1,2,3],[4,5,6]]. Il y a une toute petite difference avec ce que vous avez écrit, la virgule entre les deux sous-listes.

    Cette matrice pourait être réprésentée comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    M = [[1, 2, 3],
         [4, 5, 6]]
    Ce qui est strictement identique mais fait ressortir les colonnes.

    Bien, manipuler une matrice revient à manipuler des listes. Vous pouvez faire cette exercice de différentes manières. Voici un exemple simple, mais pas le plus élegant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    def col2(M):
        """Recupere les elements de la colonne d indice 2"""
        elements = [] 
        for row in M:
            elements.append(row[1])
        return elements
    Explications:

    On declare une function avec def avec pour parametre une matrice M (en réalité, à ce moment là python ne sait pas ce qu'est M, ça pourrait être tout et n'importe quoi. C'est une variable muette non typée car son nom n'a pas d'importance et son type non plus, du moins jusque là).

    On crée une liste appelée elements vide. C'est la liste qui va contenir les elements de la colonne d'indice 2.

    Cette ligne signifie que l'on parcours le premier niveau de la liste M (une matrice est une liste de liste), cela correspond aux lignes (d'où "row" en anglais). Encore une fois le nom "row" n'a strictement aucune importance, on pourrais mettre "grzhjbfezbfb", mais bon c'est moins explicite.

    Il suffit ensuite d'ajouter grace à la methode append des listes l'élement situé à la deuxième position, soit row[1] car on compte à partir de 0.

    La fonction retourne elements.

    L'ensemble donne ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    def col2(M):
        """Recupere les elements de la colonne d'indice 2"""
        elements = [] 
        for row in M:
            elements.append(row[1])
        return elements
     
    M = [[1, 2, 3],
         [4, 5, 6]]
     
    print col2(M)
    Une fois que vous aurez maîtriser ce code, essayez de le reproduire pour n'importe quelle colonne (pourvue que vous respectiez la taille de la matrice). Essayez de visualizer les différentes étapes en plaçant des print, et essayez de voir quelles sont/peuvent être les limites.

    Ju

  8. #8
    Membre très actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 208
    Par défaut
    bonjour,

    merci beaucoup j'ai bien compris et j'ai fais sur plusieurs matrice et je les généraliser et sa donne sa

    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
    def matrice(r,c):
    ...       M = []
    ...       for x in range(r):
    ...           row = []
    ...           for y in range(c):
    ...               row.append(x*c + y + 1)
    ...           M.append(row)
    ...       return M
    ... 
    >>> def col(r,c):
    ...     elements = []
    ...     M = matrice(r,c) 
    ...     for row in M:
    ...         elements.append(row[1])
    ...     return elements
    ... 
    >>> matrice(3,3)
    [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
    >>> col(3,3)
    [2, 5, 8]
    >>> col(5,5)
    [2, 7, 12, 17, 22]
    j'espéré que un jours j'y arriverai a avoir votre niveau

  9. #9
    Membre émérite

    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Août 2010
    Messages : 662
    Par défaut
    Bonjour,

    Vous allez vite progresser, ne vous en faite pas.

    Personnellement j'aurais répondu à l'exercice par le code suivant:
    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
    def matrice(r,c):
        """Retourne une matrice de taille r*c"""
        M = []
        for x in range(r):
            row = []
            for y in range(c):
                row.append(x*c + y + 1)
            M.append(row)
        return M
     
    def col2(M):
        """Recupere les elements de la colonne d'indice 2"""
        elements = [] 
        for row in M:
            elements.append(row[1])
        return elements
     
    def col(M, indice=1):
        """Recupere les elements de la colonne d'indice indice (1 par defaut)"""
        # On verifie que la taille de la matrice est en accord avec l indice
        if len(M[0]) > indice-1:
            elements = [] 
            for row in M:
                elements.append(row[indice-1])
            return elements
        else:
            print 'Matrice trop petite'
            return None
     
    # Tests
    M = matrice(3,3)
    print col2(M)
    print col(M,2)  
    print col(M,4)

    La nouvelle function col() est plus générale. Elle prend en parametre une matrice de taille quelconque et retoune la colonne d'indice indice. Cependant vous imaginez bien que si vous demandez à cette function de retourner la colonne 14 d'une matrice 2*2 il va y avoir un probleme! On rajoute à ce moment un test simple grace au bloc if. Si la taille du premier element de la matrice est inférieure à l'indice demander, alors on affiche un message d'erreur et on retourne rien (None).

    Comme on compte à partir de 0 en python, j'ai ajouté un -1 de temps en temps de sorte que lorsque indice=2, c'est row[1] qui est récupéré.

    Exemple de la function len():
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> M = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
    >>> print len(M[0])
    3
    Pour bien faire vous devriez aussi ajouter cette condition sur la function col2().

    Bon courage

  10. #10
    Membre très actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 208
    Par défaut
    bonjour,

    je vous remercie pour les explications , vraiment faut etre bon programmeur pour programmer

    est ce ce que je peux savoir elle sert a quoi la condition elif et comment en l'emploi dans un code

    merci

  11. #11
    Membre émérite

    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Août 2010
    Messages : 662
    Par défaut
    Bonjour,

    Vous ne devriez pas poser ce genre de questions.. Je n'ai pas verifié mais le chapitre sur les conditions (et donc sur if, elif, else) doit être le numéro 3 ou 4 (le premier étant l'installation de python), et ce quelque soit le tuto, livre, cours.

    Je ne sais pas comment vous travaillez en general, mais poser systématiquement des questions aux autres sans chercher par vous meme (parce que là il fallait pas chercher loin et longtemps), ne va pas vous aider, bien au contraire.


    J

  12. #12
    Membre très actif Avatar de Kurodiam
    Inscrit en
    Décembre 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 208
    Par défaut
    Hi ,

    @l1informatique :Tu trouveras plein de choses ici http://python.developpez.com/cours/apprendre-python3/

    Jettes un coup d’œil sur ce sujet http://www.developpez.net/forums/d14...te-indexation/

  13. #13
    Membre Expert Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Par défaut
    Citation Envoyé par Kurodiam
    @l1informatique :Tu trouveras plein de choses ici http://python.developpez.com/cours/apprendre-python3/
    C'est l'hôpital qui se fout de la charité !

  14. #14
    Membre très actif Avatar de Kurodiam
    Inscrit en
    Décembre 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 208
    Par défaut
    euh désolé pour la pub Aussi , tu peux tout trouver sur gogole(^^) ...

Discussions similaires

  1. chercher et trouver une cellule vide
    Par kazuzu dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 04/03/2009, 22h25
  2. trouver Index
    Par helenafr dans le forum Access
    Réponses: 7
    Dernier message: 22/03/2006, 10h46
  3. VBA/xl - Chercher et trouver
    Par thulvar dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/12/2005, 13h37
  4. [IB5.5] comment trouver les indexes
    Par inconu dans le forum InterBase
    Réponses: 3
    Dernier message: 06/10/2005, 08h45
  5. chercher l'index maxi d'une table
    Par picoti2 dans le forum Bases de données
    Réponses: 13
    Dernier message: 22/03/2004, 08h07

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