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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 752
    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 752
    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 752
    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 752
    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

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