Lesezeit: 2 Minuten;
Folgender Python-Code kann benutzt werden, um die Verteilungen beim Weihnachtswichteln zu bestimmen. Man kann ihn kopieren und in Thonny einfügen, wobei eine Person, die nicht beim Wichteln
mitmacht (ist es ein Wichteln in der Freundesgruppe, zum Beispiel ein Familienmitglied) die Lösung sehen kann und jeder Person einzeln mitteilen kann. Es ist besonders praktisch unter
Leuten, die sich nicht zusammenfinden können um Zettel aus einem Hut zu ziehen.
Um den Code funktionstüchtig zu machen, habe ich eng mit einer Informatik-Studentin zusammengearbeitet, die ein ehemaliges Mitglied der Schülerzeitung ist.
Hierzu wird zuerst randint importiert.
Das Programm fragt dich, wie viele Leute am Wichteln teilnehmen. Du (der Nutzer) gibst eine Zahl ein.
Mehrere Variablen werden hinzugefügt.
Danach kommt die Frage, wie die Teilnehmer heißen. Nach jedem Namen wird einmal Enter gedrückt. Das Programm lässt dich genau so viele Namen angeben, wie die vorher gegebene Zahl.
Es werden aus den Namen zwei Listen erstellt.
Dann ordnet es jeder Person eine andere Person zu, die diese dann beim Wichteln gezogen hat. Das Programm ist leider nicht fehlerfrei - ordnet es jemandem sich selbst zu, fordert es den Nutzer dazu auf, das Programm erneut zu starten.
Hierzu werden zwei Schleifen benutzt.
Ich hoffe ihr habt viel Spaß mit dem Programm!
from random import randint
zahl = int(input('Wie viele Leute nehmen am Wichteln teil? '))
WichtelListeNamen = []
WichtelListeGeschenk = []
Wichteln = {}
zahl2 = zahl
zähler = 0
print('Wie heißen die Teilnehmer?')
while zahl2 > 0:
wichtel = str(input('Name: '))
zahl2 -= 1
WichtelListeNamen.append(wichtel)
WichtelListeGeschenk.append(wichtel)
for x in WichtelListeNamen:
person_nummer = randint(0,len(WichtelListeGeschenk)-1)
while x == WichtelListeGeschenk[person_nummer]:
person_nummer = randint(0,len(WichtelListeGeschenk)-1)
zähler += 1
if zähler > 1000:
print('Es gab ein Problem, bitte starten Sie das Programm erneut')
exit()
Wichteln[x] = WichtelListeGeschenk[person_nummer]
WichtelListeGeschenk.pop(person_nummer)
print('')
for x in range (len(WichtelListeNamen)):
wichtel_key = Wichteln[WichtelListeNamen[x]]
print(WichtelListeNamen[x],':',wichtel_key)
Dorian
Kommentar schreiben