Partage
  • Partager sur Facebook
  • Partager sur Twitter

Recuperer un element au hasar d'une liste

automatiquement avec des variables(le titre était trop long)

Sujet résolu
4 mars 2021 à 20:06:02

Bonjour , 

je fais un logiciel qui fait des questions sur les tables de multiplications mais j'aimerais créer des variables qui récupèrent un élément au hasard d'une liste automatique . Sans créer a chaque fois une variable qui va récupérer un élément au hasard .

mon code :

import random

#les inputs
nombre_x = []
nombre_y = []

for n in range(20):
    vr = random.randint(0 , 5)
    nombre_x.append(vr)

for n in range(20):
    tr = random.randint(0 , 5)
    nombre_y.append(tr)



choix = input("Choisis un niveau 1 ou 2 : ")

if choix == "1":
    print("Table de multiplication de 1 à 5 ")
    for n in range(2):
        test = input(f"Combien font {random.choice(nombre_x)} fois {random.choice(nombre_y)}")
        convert = int(test)
    if convert ==  * :
        print("gg")
    else:
        print("faux")
Je sais pas si vous avez compris mais bon . Merci d'avance
  • Partager sur Facebook
  • Partager sur Twitter
4 mars 2021 à 20:48:21

HunterPro a écrit:

Sans créer a chaque fois une variable qui va récupérer un élément au hasard .

Difficile de ne pas utiliser 2 fois chaque nombre tiré au hasard: la première pour calculer le résultat attendu et la 2nde pour l'afficher... Et faire çà ans stocker le retour de random... dans une variable est impossible pour autant que çà ait un intérêt (c'est juste une variable à mettre à jour...)
  • Partager sur Facebook
  • Partager sur Twitter
4 mars 2021 à 20:48:24

Bonjour,

Merci de colorer votre code à l'aide du bouton Code

Les forums d'Openclassrooms disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source afin de les rendre plus lisibles et faciles à manipuler par les intervenants. Pour cela, il faut utiliser le bouton Code de l'éditeur, choisir un des langages proposés et coller votre code dans la zone prévue. Si vous utilisez l'éditeur de messages en mode Markdown, il faut utiliser les balises <pre class="brush: python;">Votre code ici</pre>.

Merci de modifier votre message d'origine en fonction.

Liens conseillés

  • Partager sur Facebook
  • Partager sur Twitter
4 mars 2021 à 21:38:32

Bonjour.

from random import randint

nb_repetition = 20

print("Table de multiplication de 1 à 5")
    
for _ in range(nb_repetition):
    nb1 = randint(1,11) 
    nb2 = randint(1,6)
    rep = input(f"Combien font {nb1} x {nb2} ? --> ")
    
    if int(rep) == nb1 * nb2:
        print("Gagné")
    else:
        print("Perdu")

Personnellement, pour la génération des opérations, je procèderai comme ci-dessus.

  • Partager sur Facebook
  • Partager sur Twitter

PB68

4 mars 2021 à 23:01:32

Récupérer un élément au pif dans une liste sans générer un random à chaque fois ... Suffit de shuffle la liste et de la pop.
  • Partager sur Facebook
  • Partager sur Twitter

Python c'est bon, mangez-en. 

5 mars 2021 à 1:46:43

@josmiley:
Ça empêche les tests du genre 4*4 si la liste ne contient les nombres qu'une fois
On peut mettre les nombres deux fois dans la liste et faire un shuffle et deux pop
ou générer deux listes et faire un shuffle sur chacune avec un pop sur chacune.
Ça ne donne aucune garantie, mais ça augmente la probabilité des carrés.
  • Partager sur Facebook
  • Partager sur Twitter

Le Tout est souvent plus grand que la somme de ses parties.

5 mars 2021 à 9:37:25

PB68 merci je pense que je vais procéder comme ca .
  • Partager sur Facebook
  • Partager sur Twitter
5 mars 2021 à 9:50:25

HunterPro a écrit:

PB68 merci je pense que je vais procéder comme ca .


Bonjour.

Il faut juste rectifier les lignes suivantes :

nb1 = randint(1,10)
nb2 = randint(1,5)

J'avais le range sous les yeux et dans le feu de l'action, je suis parti sur la même logique pour les bornes !!!

  • Partager sur Facebook
  • Partager sur Twitter

PB68