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 :

valeur aléatoire dans un boucle


Sujet :

Python

  1. #1
    Membre actif
    Inscrit en
    Février 2010
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 52
    Par défaut valeur aléatoire dans un boucle
    Bonjour
    Mon objectif est de créer un nombre aléatoire des tableaux chaque tableau possède un nombre aléatoire de ligne, je débute avec python et j'ai pas pu atteindre mon objectif, j'ai écris un bout de code ou le nombre des lignes se cumule à chaque ittération de création d'un nouveau tableau, j'aime bien savoir comment rénitialiser le compteur à la fin de chaque ittération pour que le boucle génère une nouvelle valeur aléatoire "ligneumber" dans mon cas, voilà mon code est merci d'avance

    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
     
    import pandas as pd 
    import numpy as np 
    import random as rand
    def creationtab():
       tabnumber = rand.randint(1,3)
       listetab = []
       for loop in range(tabnumber): 
          ligneumber = rand.randint(1,2)
          print("++++++++ Tab num:", loop + 1,"++++++++") 
          print("Le nombre des ligne dans ce tableau est: ", ligneumber)
          lignename = str('tab' + str(loop +1))
          for loop in range(ligneumber):
             vm=[]
             val1 = rand.randint(2,100)
             val2 = rand.randint(2,100)
             val3 = rand.randint(20,5000)
             val4 = 0
             vm.append(val1)
             vm.append(val2)
             vm.append(val3)
             vm.append(val4)
             listetab.append(vm)       
          for loop in range(ligneumber):  
              numpyArray = np.array(listetab)   
              panda_df = pd.DataFrame(data = numpyArray[0:, 0:], 
                            index = ['ligne' + str(i + 1) + "_" + lignename
                            for i in range(numpyArray.shape[0])], 
                            columns = ['Val1', 'val2', 'val3', 'val4'])         
          print(panda_df) 
    print()
     
    # appel fonction
    creationtab()

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

    Citation Envoyé par samirahal Voir le message
    j'ai écris un bout de code ou le nombre des lignes se cumule à chaque ittération de création d'un nouveau tableau
    Effectivement, quelque chose n'est pas initialisé à chaque itération mais ce n'est pas ligneumber (qui est initialisé ligne 8) mais listetab (initialisé une fois en dehors de la boucle).

    Citation Envoyé par samirahal Voir le message
    je débute avec python et j'ai pas pu atteindre mon objectif,
    Dans les tutos, il y a des exercices (corrigés) pour vous familiarisez à la programmation et à l'exercice de relecture de votre code lorsqu'il ne fait pas ce qu'on en attend. Si vous n'avez pas acquis les bons réflexes sur des bouts de codes "simples", ça va être galère (pour vous) quand ça va se compliquer.

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

  3. #3
    Invité
    Invité(e)
    Par défaut
    Salut !

    Tu verras qu'il y a moyen de faire plus court et rapide à l'avenir ! =)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    def toto():
    	from random import randint
    	max_table = 8 #Valeur à changer 
    	max_row = 12 #Valeur à changer 
    	tables = [[[randint(2, 100), randint(2, 100), randint(20, 5000), 0] for row in range(randint(1, max_row))] for tab in range(randint(1, max_table))]
     
    	print('\n------------------\n'.join(str(tab) for tab in tables))
    Un cours qui m'a l'air pas mal : http://pascal.ortiz.free.fr/contents...rehension.html

  4. #4
    Membre actif
    Inscrit en
    Février 2010
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 52
    Par défaut
    Bonjour
    Merci pour vos réponses et conseils précieux je vais suivre le tuto suggéré par "LeNarval" et je vais essayer d'écrir un code qui répond à mes besoins si non je reviendrai vers vous pour me donner un coup de pouce

  5. #5
    Membre actif
    Inscrit en
    Février 2010
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 52
    Par défaut
    Bonjour
    SVP je veux faire des opérations mathématique sur les valeurs de chaque case des deux listes crées chaqune dans une fonction diffirente voilà le code pour les deux listes:

    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    import pandas as pd 
    import numpy as np 
    import random as rand
    def creationtab1():
       tabnumber = rand.randint(1,3)
       for loop in range(tabnumber): 
          listetab = []
          ligneumber = rand.randint(1,2)
          print("++++++++ Tab num:", loop + 1,"++++++++") 
          print("Le nombre des ligne dans ce tableau est: ", ligneumber)
          lignename = str('tab' + str(loop +1))
          for loop in range(ligneumber):
             vm=[]
             val1 = rand.randint(2,100)
             val2 = rand.randint(2,100)
             val3 = rand.randint(20,5000)
             val4 = 0
             vm.append(val1)
             vm.append(val2)
             vm.append(val3)
             vm.append(val4)
             listetab.append(vm)       
          for loop in range(ligneumber):  
              numpyArray = np.array(listetab)   
              panda_df = pd.DataFrame(data = numpyArray[0:, 0:], 
                            index = ['ligne' + str(i + 1) + "_" + lignename
                            for i in range(numpyArray.shape[0])], 
                            columns = ['Val1', 'val2', 'val3', 'val4'])         
          print(panda_df) 
    print()
     
    def creationtab2():
       print("######Mon deuxieme tableau###########")
       for loop in range(1): 
          listetab = []
          ligneumber = rand.randint(1,2)
          print("++++++++ Tab num:", loop + 1,"++++++++") 
          print("Le nombre des ligne dans ce tableau est: ", ligneumber)
          lignename = str('tab' + str(loop +1))
          for loop in range(ligneumber):
             vm=[]
             val1 = rand.randint(1000,10000)
             val2 = rand.randint(2000,10000)
             val3 = rand.randint(2000,5000)
             val4 = 0
             vm.append(val1)
             vm.append(val2)
             vm.append(val3)
             vm.append(val4)
             listetab.append(vm)       
          for loop in range(ligneumber):  
              numpyArray = np.array(listetab)   
              panda_df = pd.DataFrame(data = numpyArray[0:, 0:], 
                            index = ['ligne' + str(i + 1) + "_" + lignename
                            for i in range(numpyArray.shape[0])], 
                            columns = ['Val1', 'val2', 'val3', 'val4'])         
          print(panda_df) 
    print()
     
    # appel des fonction
    creationtab1()
    creationtab2()
    SVP est il possible de manipulerles valeurs de creationtab1 et creationtab2 dans une troisième fonction comme par exemple comparer les valeurs de chaques ligne case par case ?
    Merci d'avance

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 772
    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 772
    Par défaut
    Citation Envoyé par samirahal Voir le message
    SVP est il possible de manipulerles valeurs de creationtab1 et creationtab2 dans une troisième fonction comme par exemple comparer les valeurs de chaques ligne case par case ?
    Vos fonctions créent (sans les retourner) des DataFrame pandas qui a déjà sa fonction compare.
    => C'est possible, il faut juste juste apprendre à le faire.

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

  7. #7
    Membre actif
    Inscrit en
    Février 2010
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 52
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Vos fonctions créent (sans les retourner) des DataFrame pandas qui a déjà sa fonction compare.
    => C'est possible, il faut juste juste apprendre à le faire.

    - W
    Merci pour ton retour, je vais apprendre à faire des operations avec des DataFrame

  8. #8
    Membre actif
    Inscrit en
    Février 2010
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 52
    Par défaut
    Bonjour
    j'ai crée des pandas DataFrame qui donne le resultat voulu dans des fonctions puis j'ai rassembler les dataFrame dans une liste pour que je puisse le retourner comme resultat, mon problème maintenant est comment accéder à chaque ligne du chaque dataFrame puisque le nombre est aléatoire, en fait je veux par exemple accéder à la ligne 1... jusqu'a ligne n du tableau 1 puis ligne 1...ligne n du tableau2 etc, dans le cas ou je génère un seul tableau j'ai fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    val1 = bigtab.loc['ligne1_tab1','Val1']
    print(val1)
    et ca marche car j'ai un seul tableau mais dans le cas ou il y une serie de tableau je peux pas manipuler les lignes.Voilà mes deux fonctions:
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
    import pandas as pd 
    import numpy as np 
    import random as rand
     
     
    def creationtab1():
       tabnumber = rand.randint(3,9)
       maliste = []
       for loop in range(tabnumber): 
          listetab = []
          ligneumber = rand.randint(4,12)
          #print("++++++++ Tab1 num:", loop + 1,"++++++++") 
          #print("Le nombre des ligne dans ce tableau est: ", ligneumber)
          lignename = str('tab' + str(loop +1))
          for loop in range(ligneumber):
             tb=[rand.randint(2,10),rand.randint(3,15),rand.randint(10,30),0]
             listetab.append(tb)       
          for loop in range(ligneumber):  
              numpyArray = np.array(listetab)   
              tab_df = pd.DataFrame(data = numpyArray[0:, 0:], 
                            index = ['ligne' + str(i + 1) + "_" + lignename
                            for i in range(numpyArray.shape[0])], 
                            columns = ['Val1', 'val2', 'val3', 'val4'])
          maliste.append(tab_df)               
       return maliste
     
     
     
    def creationtab2():
       print("######Mon deuxieme tableau###########")
       for loop in range(1): 
          listetab = []
          ligneumber = rand.randint(1,8)
          print("++++++++ Big Tab++++++++") 
          print("Le nombre des ligne dans ce tableau est: ", ligneumber)
          lignename = str('tab' + str(loop +1))
          for loop in range(ligneumber):
             bigtab=[rand.randint(1000,10000),rand.randint(2000,10000),rand.randint(2000,5000),1 ]
             listetab.append(bigtab)       
          for loop in range(ligneumber):  
              numpyArray = np.array(listetab)   
              panda_df = pd.DataFrame(data = numpyArray[0:, 0:], 
                            index = ['ligne' + str(i + 1) + "_" + lignename
                            for i in range(numpyArray.shape[0])], 
                            columns = ['Val1', 'val2', 'val3', 'val4'])         
       return panda_df
     
     
     
     
    # appel des fonction
    simpletab = creationtab1()
    print(type(simpletab))
    i = 0
    for vals in simpletab:
       print("++++++++ Tab1 num:", i+1 ,"++++++++") 
       print(vals)
       print(type(vals))
       i = i+1
    print('Le nombre des tableaux est :', i)   
    bigtab = creationtab2()
    print(bigtab)
    val1 = bigtab.loc['ligne1_tab1','Val1']
    print(val1)
    Merci d'avance

  9. #9
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 772
    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 772
    Par défaut
    Citation Envoyé par samirahal Voir le message
    et ca marche car j'ai un seul tableau mais dans le cas ou il y une serie de tableau je peux pas manipuler les lignes.
    Listes de listes et boucles imbriquées... c'est pour apprendre ces bases là qu'on a écrit des tutos.
    Par où commencer pour vous expliquer quoi que ce soit si vous ne maîtrisez pas les bases?

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

  10. #10
    Membre actif
    Inscrit en
    Février 2010
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 52
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Listes de listes et boucles imbriquées... c'est pour apprendre ces bases là qu'on a écrit des tutos.
    Par où commencer pour vous expliquer quoi que ce soit si vous ne maîtrisez pas les bases?

    - W
    STP wiztricks t'as un lien vers un tutos qui traite comment manipuler les listes des dataFrame et merci d'avance

  11. #11
    Invité
    Invité(e)
    Par défaut
    Salut !

    comment accéder à chaque ligne du chaque dataFrame
    Pas sûr d'avoir bien compris...

    Pour accéder à un élément dans une liste dans une liste dans une liste dans une lis... on fait liste[0][1][42][3] par exemple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    >>> liste = [[[0,1,2,3],[4,14,24,34]],\
    ...          [[10,11,12,13],[14,114,124,134]]]
     
    >>> liste[0]
    [[0, 1, 2, 3], [4, 14, 24, 34]]
     
    >>> liste[0][1]
    [4, 14, 24, 34]
     
    >>> liste[0][1][3]
    34
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    for array in liste:
        print('----- TABLE ------')
        for line in array:
            print(line)
     
     
    ----- TABLE ------
    [0, 1, 2, 3]
    [4, 14, 24, 34]
    ----- TABLE ------
    [10, 11, 12, 13]
    [14, 114, 124, 134]
    Mais ça tu sais faire, donc je ne vois pas trop...

  12. #12
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 772
    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 772
    Par défaut
    Citation Envoyé par samirahal Voir le message
    STP wiztricks t'as un lien vers un tutos qui traite comment manipuler les listes des dataFrame et merci d'avance
    Dans ma signature, il y a l'adresse de pleins de tutos pour apprendre les bases.

    Ils ne vous aideront pas directement à gérer des listes de DataFrame mais des listes d'objets quelconque et acquérir des bases pour traiter le cas DataFrame...
    En plus, il y a des exercices (corrigés) pour vous entraîner...

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

  13. #13
    Membre actif
    Inscrit en
    Février 2010
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 52
    Par défaut
    Citation Envoyé par LeNarvalo Voir le message
    Salut !


    Pas sûr d'avoir bien compris...

    Pour accéder à un élément dans une liste dans une liste dans une liste dans une lis... on fait liste[0][1][42][3] par exemple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    >>> liste = [[[0,1,2,3],[4,14,24,34]],\
    ...          [[10,11,12,13],[14,114,124,134]]]
     
    >>> liste[0]
    [[0, 1, 2, 3], [4, 14, 24, 34]]
     
    >>> liste[0][1]
    [4, 14, 24, 34]
     
    >>> liste[0][1][3]
    34
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    for array in liste:
        print('----- TABLE ------')
        for line in array:
            print(line)
     
     
    ----- TABLE ------
    [0, 1, 2, 3]
    [4, 14, 24, 34]
    ----- TABLE ------
    [10, 11, 12, 13]
    [14, 114, 124, 134]
    Mais ça tu sais faire, donc je ne vois pas trop...
    Bonjour, d'abord Merci pour votre réponse
    Alors Ma fonction suivante:
    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
     
     tabnumber = rand.randint(3,9)
       maliste = []
       for loop in range(tabnumber): 
          listetab = []
          ligneumber = rand.randint(4,12)
          #print("++++++++ Tab1 num:", loop + 1,"++++++++") 
          #print("Le nombre des ligne dans ce tableau est: ", ligneumber)
          lignename = str('tab' + str(loop +1))
          for loop in range(ligneumber):
             tb=[rand.randint(2,10),rand.randint(3,15),rand.randint(10,30),0]
             listetab.append(tb)       
          for loop in range(ligneumber):  
              numpyArray = np.array(listetab)   
              tab_df = pd.DataFrame(data = numpyArray[0:, 0:], 
                            index = ['ligne' + str(i + 1) + "_" + lignename
                            for i in range(numpyArray.shape[0])], 
                            columns = ['Val1', 'val2', 'val3', 'val4'])
          maliste.append(tab_df)               
       return maliste
    Me donne ce resultat:
    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
     
    ++++++++ Tab1 num: 1 ++++++++
                  Val1  val2  val3  val4
    ligne1_tab1      9     8    18     0
    ligne2_tab1      5     8    23     0
    ligne3_tab1      6     3    14     0
    ligne4_tab1      4    15    22     0
    ligne5_tab1      5    15    12     0
    ligne6_tab1      4    14    20     0
    ligne7_tab1      3     3    16     0
    ligne8_tab1     10     6    15     0
    ligne9_tab1      4     9    22     0
    ligne10_tab1     4     3    20     0
    ++++++++ Tab1 num: 2 ++++++++
                 Val1  val2  val3  val4
    ligne1_tab2     2    14    30     0
    ligne2_tab2     3     8    19     0
    ligne3_tab2     6     6    15     0
    ligne4_tab2     8     3    26     0
    ligne5_tab2     7     8    17     0
    ligne6_tab2     3     7    14     0
    ligne7_tab2     4    14    27     0
    ++++++++ Tab1 num: 3 ++++++++
    Mon objectif est d'acceder aux élements des tableaux(Tab1 num: 1,Tab1 num: 2 jusqua Tab1 num: n) élément par élement autrement je veux récuperer val1 du Tab1 num: 1 puis val2 du Tab1 num: 1 puis val3 du Tab1 num: 1 puis val4 du Tab1 num: 1 et la meme chose pour les autres tableaux
    Merci d'avance

  14. #14
    Membre actif
    Inscrit en
    Février 2010
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 52
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Dans ma signature, il y a l'adresse de pleins de tutos pour apprendre les bases.

    Ils ne vous aideront pas directement à gérer des listes de DataFrame mais des listes d'objets quelconque et acquérir des bases pour traiter le cas DataFrame...
    En plus, il y a des exercices (corrigés) pour vous entraîner...

    - W
    Merci beaucoup pour les liens j'ai commencé à apprendre le cours "Apprendre Python et s'initier à la programmation" , mais j'aime bien avancer dans la résolution de mon problème au même temps

  15. #15
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 772
    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 772
    Par défaut
    Citation Envoyé par samirahal Voir le message
    mais j'aime bien avancer dans la résolution de mon problème au même temps
    Si vous ne commencez pas par le début, vous ferez juste du "sur place"...

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

  16. #16
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 849
    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 849
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par samirahal Voir le message
    Alors Ma fonction suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     tabnumber = rand.randint(3,9)
       maliste = []
       for loop in range(tabnumber):
    Déjà ce n'est pas une fonction (il manque le def nom_fonction(...)) mais surtout pourquoi ce décalage sur ces 3 premières lignes? Tu ne sais pas que Python s'appuie justement sur le décalage pour identifier les blocs de structure ?
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for x in machin:
    	truc
    	chose
    ne sera pas du tout pareil que
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for x in machin:
    	truc
    chose

    Citation Envoyé par samirahal Voir le message
    lignename = str('tab' + str(loop +1))
    str("chaine") c'est identique à "chaine" et ça évite un appel inutile => lignename = 'tab' + str(loop +1).
    Ensuite il y a les formatages de strings qui permettent de simplifier => lignename = "tab%d" % (loop+1).
    Et pareil avec 'ligne' + str(i + 1) + "_" + lignename qui s'écrira plus simplement 'ligne%d_%s' % (i+1, lignename).

    Citation Envoyé par samirahal Voir le message
    mais j'aime bien avancer dans la résolution de mon problème au même temps
    Quand on fait deux choses à la fois (ex marcher et courir), le plus souvent on se ramasse la tronche sur les pavés.
    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]

  17. #17
    Invité
    Invité(e)
    Par défaut
    @Sve@r
    Et pareil avec 'ligne' + str(i + 1) + "_" + lignename qui s'écrira plus simplement 'ligne%d_%s' % (i+1, lignename).
    Ou plus mieux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    f'ligne{i+1}_{lignename}'
    Mais OSEF un peu...
    Quand on fait deux choses à la fois (ex marcher et courir), le plus souvent on se ramasse la tronche sur les pavés.
    Te Wiztitize pas trop, il/elle fait l'effort de lire les tutos et vous le/la sermonnez...

    @samirahal
    Mon objectif est d'acceder aux élements des tableaux(Tab1 num: 1,Tab1 num: 2 jusqua Tab1 num: n) élément par élement
    Et du coup ce que j'ai donné en exemple ne convient pas ? Tu devrais savoir parcourir un tableau puisque tu en crées bien un... Après comme disent les deux grincheux, faut avoir un minimum de bases quand même, si tu te mets à faire des tutos t'es sur la bonne voie. On conseille souvent aussi le bouquin de Gérard Swinnen, accessible gratuitement (légalement ?) sur internet en format pdf.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for tab in liste:
        print('----- TABLE ------')
        for line in array:
            print(line)
            for val in line :
                #....
    Dernière modification par Invité ; 01/09/2022 à 03h10.

  18. #18
    Membre actif
    Inscrit en
    Février 2010
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 52
    Par défaut
    Merci infiniment LeNarvalo
    ça aide et me donne vraiment envie d'apprendre !! oui je vais consacré du temps pour le livre (Apprendre à programmer avec Python 3 de Gérard Swinnen) Après avoir un minimum de bases comme même en lisant les petis tutos

  19. #19
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 849
    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 849
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par LeNarvalo Voir le message
    Ou plus mieux : f'ligne{i+1}_{lignename}'
    Personnellement je n'aime pas cette syntaxe. Goûts et couleurs...

    Citation Envoyé par LeNarvalo Voir le message
    Te Wiztitize pas trop, il/elle fait l'effort de lire les tutos et vous le/la sermonnez...
    En général je commence toutefois par donner un exemple avant, histoire de montrer ce que les tutos peuvent apporter.

    Citation Envoyé par LeNarvalo Voir le message
    comme disent les deux grincheux..
    Pas d'affront

    Citation Envoyé par LeNarvalo Voir le message
    On conseille souvent aussi le bouquin de Gérard Swinnen, accessible gratuitement (légalement ?) sur internet en format pdf.
    Tout à fait légal. C'est l'auteur lui-même qui le met en ligne.
    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]

  20. #20
    Membre actif
    Inscrit en
    Février 2010
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 52
    Par défaut
    Bonjour
    j'ai pu accéder aux élements avec ce bout de code
    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
     
    # appel des fonction
    bigtab = creationtab2()
    print(bigtab)
    myindex = bigtab.index
    #print(myindex)
    for ind in myindex:
     valr1 = bigtab.loc[ind, 'val1']
     valr2 = bigtab.loc[ind, 'val2']
     valr3 = bigtab.loc[ind, 'val3']
     valr4 = bigtab.loc[ind, 'val4']
     print(valr1) 
     print(valr2) 
     print(valr3) 
     print(valr4) 
     
    #########
    simpletab = creationtab1()
    i = 0
    for pand in simpletab:  
     print("++++++++ tab num:", i+1 ,"++++++++") 
     print(pand)  
     ligne = pand.index
     for li in ligne:
      val1 =pand.loc[li,'val1']
      val2 =pand.loc[li,'val2']
      val3 = pand.loc[li,'val3']
      val4 = pand.loc[li,'val4']
      print(val1)
      print(val2)
      print(val3)
      print(val4)
      i+=1
    Je cherche maintenant à comparer les valeurs de bigtab par les valeurs de simpletab c'est à dire comparer val1 du premier tableau avec val1 du deuxième tableau si val1 du bigtab est superieur à val1 du simpletab je mais la ligne entière dans une nouvelle liste est je soustraire val1 du simpletab de val1 bigtab.
    Vous me conseiller d'utiliser les fonctions et operations des pandas.DataFrame genre ( pandas.DataFrame.compare etc..) ou bien de travailler sur les listes avec des boucles
    Merci d'avance

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/05/2011, 23h47
  2. Valeurs aléatoires dans un tableau C++
    Par 0nn2belle dans le forum C++
    Réponses: 6
    Dernier message: 10/02/2010, 13h13
  3. Recupérer des valeurs calculées dans une boucle
    Par Medoou dans le forum MATLAB
    Réponses: 40
    Dernier message: 23/07/2009, 14h12
  4. Prendre en compte une valeur insérée dans une boucle for
    Par SOPSOU dans le forum Intelligence artificielle
    Réponses: 6
    Dernier message: 08/07/2009, 16h20
  5. [BO 5] Valeur aléatoire dans un rapport
    Par LP-mpascolo dans le forum Designer
    Réponses: 27
    Dernier message: 10/12/2007, 14h58

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