[codebox=pycon file=Unbenannt.txt]
Hallo liebe Community,
Ich steh vor einem Problem und zwar möchte ich, dass die Zahlen so lange Generiert werden bis sie 45 ergeben. Wenn ich das Programm nun starte warte ich aber ewig ohne ein Ergebnis zu bekommen. Wo ist mein Fehler?
Schon mal Danke im voraus!
#Modul Importieren
import random
#Drei Random Zahlen werden generiert
a = random.randint(0, 45)
b = random.randint(0, 45)
c = random.randint(0, 45)
#Zahlen werden zusammengerechnet
AlterZusammen = a + b + c
#Wenn die Zahlen nicht 45 ergeben wird es wiederholt
while AlterZusammen != 45:
a = random.randint(0, 45)
b = random.randint(0, 45)
c = random.randint(0, 45)
#Wenn alle generierten Zahlen 45 ergeben werden sie ausgegeben
if AlterZusammen == 45:
print("Die Kinder sind" , a, b, "und", c, "Jahre alt")[/code]
Zahlen Generieren die zusammen immer den gleichen Wert haben
@Jans1612: `AlterZusammen` ändert sich innerhalb der Schleife ja nicht, also wird das während die Schleife läuft auch niemals den Wert 45 annehmen wenn es *vorher* den Wert nicht schon hatte. Wenn Du einem Namen einen Wert zuweist, dann ändern sich dadurch nicht auf magische Weise irgendwelche Werte die irgendwann vorher mal mit einem Wert berechnet wurden der vorher an den gleichen Namen gebunden war.
Das ``if`` nach der Schleife ist überflüssig. Denn die Zeile wird ja erst erreicht wenn die Schleifenbedingung erfüllt ist.
Das Vorgehen ist nicht so effizient. Man könnte die Zahlen nacheinander generieren und jedes mal die Grenzen von dem `randint`-Aufruf so wählen dass sie den übrig gebliebenen Wert abdecken. Oder man macht sich Gedanken darüber auf wieviele Arten man die Zahl auf die drei Variablen verteilen kann und generiert eine Zufallszahl in diesem Bereich und erstellt daraus dann die Aufteilung.
Das ``if`` nach der Schleife ist überflüssig. Denn die Zeile wird ja erst erreicht wenn die Schleifenbedingung erfüllt ist.
Das Vorgehen ist nicht so effizient. Man könnte die Zahlen nacheinander generieren und jedes mal die Grenzen von dem `randint`-Aufruf so wählen dass sie den übrig gebliebenen Wert abdecken. Oder man macht sich Gedanken darüber auf wieviele Arten man die Zahl auf die drei Variablen verteilen kann und generiert eine Zufallszahl in diesem Bereich und erstellt daraus dann die Aufteilung.