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

  1. #1
    Membre régulier
    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é
    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
    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é
    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
    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
    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é
    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
    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...
    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

  9. #9
    Membre éclairé
    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
    random.randrange(0, 101, 5) est déjà là pour çà.

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

  11. #11
    Rédacteur



    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
    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é
    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
    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,

###raw>template_hook.ano_emploi###