J'ai la tâche de créer une fonction qui calcule un nombre aléatoire, qui est ensuite ajouté dans un dictionnaire jusqu'à ce qu'un tel numéro soit généré au hasard. En conséquence, le nombre de répétitions doit être imprimé dans la console.
J'ai déjà essayé ce qui suit mais je n'ai pas de résultats. Je suis un débutant python alors je me sens aussi un peu perdu. P>
repetition(2, 5255) ([1244, 2415, ... ], 122)
3 Réponses :
import random def repetition(a, b): x = random.randint(a ,b) y = None values = [x] i = 0 while x != y: y = random.randint(a,b) values.append(y) i += 1 return((values, i)) This should return what you expect, I did not use any dictionary though.
Cela pourrait aider!
def repetition(a, b): d = {} while 1: x = random.randint(a, b) if x in d: return list(d.values()), len(d) d[x] = x
Peut-être que vous pouvez utiliser les collections. Qu'est-ce que cela est le retour du nombre de numéro dans la liste.
Voici un exemple de la façon dont je pouvais travailler.
C'est une bonne pratique pour donner à vos variables Nom plus significatif que des lettres simples telles que
A code>,
B code>,
xcode> etc.
Votre phrase «nombre de répétitions» semble être en désaccord avec ce que fait le code. Vous voulez que le code s'arrête dès que vous voyez une répétition? Dans ce cas, vous demandez le «nombre d'étapes jusqu'à la répétition» ou quelque chose selon ces lignes.