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 :

créer une liste de multiple d'un nombre et choisir à chaque fois un random de cette liste


Sujet :

Python

  1. #1
    Membre régulier
    Femme Profil pro
    étudiante chercheuse
    Inscrit en
    Septembre 2013
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante chercheuse
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2013
    Messages : 274
    Points : 101
    Points
    101
    Par défaut créer une liste de multiple d'un nombre et choisir à chaque fois un random de cette liste
    salut,
    je voulais créer une liste de multiple d'un nombre exemple : 5 (de préférence tout les multiple jusqu'à un plafond disant 100)
    puis je veux choisir à partir de cette liste un random:

    code pour la création d'une liste de multiple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    def construct_multiple(nombre,plafon):
        liste_multiple=[]
        for i in range(plafon+1):
            if (i%nombre==0):
                liste_multiple.append(i)
        return liste_multiple
    comment je peux choisir à chaque fois une valeur aléatoire de cette liste : liste_multiple
    par exemple "[0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100]"
    est ce que le randint peut être utiliser?
    val = int(randint(0, 100))

  2. #2
    Membre éclairé
    Homme Profil pro
    BTS SN IR
    Inscrit en
    Mai 2017
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : BTS SN IR

    Informations forums :
    Inscription : Mai 2017
    Messages : 514
    Points : 704
    Points
    704
    Par défaut
    range peu prendre jusqu'à 3 paramètres, start, stop (exclu) et step.

    tous les multiples de 5 jusqu'à 100 signifie prendre tous les nombre de 0 à 101 avec un pas de 5.
    pour choisir un élément au hasard dans un itérable vous avez random.choice.

    Ce que vous demandez s'écrit en 1 seule ligne.

  3. #3
    Membre régulier
    Femme Profil pro
    étudiante chercheuse
    Inscrit en
    Septembre 2013
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante chercheuse
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2013
    Messages : 274
    Points : 101
    Points
    101
    Par défaut
    Citation Envoyé par flapili Voir le message
    range peu prendre jusqu'à 3 paramètres, start, stop et step.

    tous les multiples de 5 jusqu'à 100 signifie prendre tous les nombre de 0 à 100 avec un pas de 5.
    pour choisir un élément au hasard dans un itérable vous avez random.choice.

    Ce que vous demandez s'écrit en 1 seule ligne.
    bon c'est bien ça , mais pour moi à chaque fois je vais donner une liste différente de nombres multiple donc j'ai besoin de la fonction que j'ai créer ,
    pour le random.choice avec le range c'est comment?

  4. #4
    Membre éclairé
    Homme Profil pro
    BTS SN IR
    Inscrit en
    Mai 2017
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : BTS SN IR

    Informations forums :
    Inscription : Mai 2017
    Messages : 514
    Points : 704
    Points
    704
    Par défaut
    Citation Envoyé par FATENMRABET Voir le message
    bon c'est bien ça , mais pour moi à chaque fois je vais donner une liste différente de nombres multiple donc j'ai besoin de la fonction que j'ai créer ,
    pour le random.choice avec le range c'est comment?
    ouvrez un environnement interactif, testez des instructions simples comme list(range(0, 101, 5)), random.choice([1, 2, 3])

  5. #5
    Membre régulier
    Femme Profil pro
    étudiante chercheuse
    Inscrit en
    Septembre 2013
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante chercheuse
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2013
    Messages : 274
    Points : 101
    Points
    101
    Par défaut
    voilà ce qui m'a résolu le problème avec ma fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    val = int(choice(construct_multiple(5,100)))

  6. #6
    Membre régulier
    Femme Profil pro
    étudiante chercheuse
    Inscrit en
    Septembre 2013
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante chercheuse
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2013
    Messages : 274
    Points : 101
    Points
    101
    Par défaut
    Citation Envoyé par flapili Voir le message
    ouvrez un environnement interactif, testez des instructions simples comme list(range(0, 101, 5)), random.choice([1, 2, 3])
    merci beaucoup flapili

  7. #7
    Membre éclairé
    Homme Profil pro
    BTS SN IR
    Inscrit en
    Mai 2017
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : BTS SN IR

    Informations forums :
    Inscription : Mai 2017
    Messages : 514
    Points : 704
    Points
    704
    Par défaut
    Citation Envoyé par FATENMRABET Voir le message
    voilà ce qui m'a résolu le problème avec ma fonction
    val = int(choice(construct_multiple(5,100)))
    je ne vais pas dire qu'il n'y a rien à garder dans ce code mais si vous voulez progressez il va falloir vous poser les bonnes questions ...

    pourquoi vous utilisez int ? pourquoi vous faite from random import * (c'est une très mauvaise pratique), pourquoi vous réinventez la fonction range ?

  8. #8
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 737
    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 737
    Points : 31 065
    Points
    31 065
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par FATENMRABET Voir le message
    voilà ce qui m'a résolu le problème avec ma fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    val = int(choice(construct_multiple(5,100)))
    Et voilà ce qu'on t'a expliqué qui t'aurait résolu le problème sans ta fonction
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    import random
    val = random.choice(range(0, 101, 5))

    Citation Envoyé par flapili Voir le message
    je ne vais pas dire qu'il n'y a rien à garder dans ce code...
    si si, dis-le...

  9. #9
    Membre éclairé
    Homme Profil pro
    BTS SN IR
    Inscrit en
    Mai 2017
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : BTS SN IR

    Informations forums :
    Inscription : Mai 2017
    Messages : 514
    Points : 704
    Points
    704
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    si si, dis-le...
    le val = était un bon début

    bon j'avais dit que c'était possible en une ligne, chose promise chose due
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> f = lambda nombre, plafond: __import__("random").choice(range(0, plafond+1, nombre))
    >>> f(5, 100)
    20

  10. #10
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 435
    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 435
    Points : 37 020
    Points
    37 020
    Par défaut
    random.randrange(0, 101, 5) est déjà là pour çà.

    - W

  11. #11
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 937
    Points
    22 937
    Billets dans le blog
    125
    Par défaut


    Très proche de la solution de @Sve@r :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    from random import choice
     
    print(choice([x*5 for x in range(1, 20)]))
    Je préfère fixer le multiple maximum (20) plutôt que la limite plus 1 (101)

  12. #12
    Membre régulier
    Femme Profil pro
    étudiante chercheuse
    Inscrit en
    Septembre 2013
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante chercheuse
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2013
    Messages : 274
    Points : 101
    Points
    101
    Par défaut choisir deux valeur random ou None
    bonjour,

    je veux choisir au max deux valeur aléatoire dans une liste ou bien 1 ou rien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     tasks_on_proc = [1,5,6,7,8]
     task_prec=choices(tasks_on_proc,k=2)

    j'obtient toujours 2 valeur ou 2 valeur redondant alors que je veux 0,1,et au max 2 valeur , y 'a t-il une autre manière pour ça

  13. #13
    Membre éclairé
    Homme Profil pro
    BTS SN IR
    Inscrit en
    Mai 2017
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : BTS SN IR

    Informations forums :
    Inscription : Mai 2017
    Messages : 514
    Points : 704
    Points
    704
    Par défaut
    si k est le nombre d'élément tiré au hasard, est il envisageable d'également tirer k au hasard?

  14. #14
    Membre régulier
    Femme Profil pro
    étudiante chercheuse
    Inscrit en
    Septembre 2013
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante chercheuse
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2013
    Messages : 274
    Points : 101
    Points
    101
    Par défaut
    Citation Envoyé par flapili Voir le message
    si k est le nombre d'élément tiré au hasard, est il envisageable d'également tirer k au hasard?
    exactement , merci parfois je me bloque , saturé , merci beaucoup,

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 18/06/2018, 13h33
  2. Réponses: 1
    Dernier message: 23/02/2016, 15h41
  3. Réponses: 6
    Dernier message: 20/08/2015, 13h00
  4. [AC-2010] Comment créer une liste déroulante à choix multiple
    Par e2r34 dans le forum IHM
    Réponses: 2
    Dernier message: 24/02/2013, 18h35
  5. Créer une liste de nombre
    Par lpnj1 dans le forum VBA Access
    Réponses: 4
    Dernier message: 27/12/2007, 11h39

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