Ich versuche, die Anzahl der gemeinsamen Elemente aus zwei zufällig ausgewählten Liste zu erhalten, wie Sie im Code am Ende dieses Beitrags sehen können.Wie bekomme ich einen festen Wert für die Zufallsfunktion?
Ein Problem ist, dass
print(count_matching_numbers(generate_numbers(), draw_winning_numbers()))
das Ergebnis der obigen Druckfunktion, auf dem def basiert. Funktionen im Inneren des Druck einen unabhängig Ausgabe erzeugen, nicht von
def generate_numbers():
result = random.sample(range(1, 46), 6)
result.sort()
return result
oder
def draw_winning_numbers():
win = generate_numbers()
for i in win:
bonus = random.randint(1, 45)
bonus not in win
win.append(bonus)
return win
Auf den Punkt gebracht, würde ich eine feste Ausgangs von Zufallsfunktion bekommen. Was soll ich tun, um das Problem zu lösen?
Vielen Dank im Voraus!
import random
def generate_numbers():
result = random.sample(range(1, 46), 6)
result.sort()
return result
def draw_winning_numbers():
win = generate_numbers()
for i in win:
bonus = random.randint(1, 45)
bonus not in win
win.append(bonus)
return win
def count_matching_numbers(list1, list2):
return len(set(list1) & set(list2))
print(generate_numbers())
print(draw_winning_numbers())
print(count_matching_numbers(generate_numbers(), draw_winning_numbers()))
Sie könnten a) Fest Code der Wert ist, oder b) setze den zufälligen Seed –
@PaulH: oder c) benutze 'unittest.mock()' und patch 'sample' und' randint', um vorherbestimmte Zahlen zurückzugeben. Nicht so einfach wie das Setzen des Samens. –
Aber vor allem sollte das OP die Funktionen nicht zweimal aufrufen. Verwenden Sie stattdessen Variablen. –