Einfache Schleife

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Python_Tom
User
Beiträge: 3
Registriert: Montag 14. Februar 2022, 22:03

Hallo Liebes Forum,

könnte mir bitte jemand helfen. Ich probiere jetzt schon seit einer Stunde eine einfache Schleife:

rest=0

if rest !=0:
z1=random.randint(10,40)
z2=random.randint(1,20)
rest=z1%z2
else:
print("Wieviel ist:",z1 ,":",z2)
c=z1/z2
print(c)

Ich möchte erreichen, dass die Schleife solange durchläuft, bis Zufallszahlen gefunden werden, die eine Division ohne Rest ergeben.
Das Programm spring allerdings sofort zu den else Befehlen.
Wo mache ich da den Fehler?
Python_Tom
User
Beiträge: 3
Registriert: Montag 14. Februar 2022, 22:03

Entschuldigung ans Forum, ich habe meinen DUMMEN Fehler selbst gefunden.
Benutzeravatar
ThomasL
User
Beiträge: 1379
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

Nun, du wirst vermutlich festgestellt haben, dass obiger Code keine Schleife enthält. :-)

Aber zeig doch mal deinen aktuellen Code und vielleicht können wir noch etwas optimieren.
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Sirius3
User
Beiträge: 18279
Registriert: Sonntag 21. Oktober 2012, 17:20

Eingerückt wird immer mit 4 Leerzeichen pro Ebene.
Statt so lange zu würfeln, bis man eine Zahl findet, die ohne Rest teilbar ist, kann man diese auch einfach ausrechnen:

Code: Alles auswählen

zahl2 = random.randint(1, 20)
rest = random.randint(-(-10 // zahl2), 40 // zahl2)
zahl1 = zahl2 * rest
print(f"Wieviel ist: {zahl1} : {zahl2}?")
print(f"Lösung: {rest}")
Da // immer abrundet, sorgt `-(-10//z2)` dafür, dass statt dessen aufgerundet wird.
Antworten