Probleme mit Randomzahlen

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
Noob4real
User
Beiträge: 3
Registriert: Samstag 30. Januar 2021, 15:54

Samstag 30. Januar 2021, 16:56

Hallo, vielleicht kann mir jmd. helfen.

ich versuche mich grade an einem Programm das meinem Sohn Rechenaufgaben erstellen soll... jetzt hänge ich bei der Subtraktion an dem Problem, dass die erste Zahl ja höher sein muss als die 2. Folgendes habe ich probiert:

from random import randint

counter = int (input ('Wieviele Aufgaben ? '))

richtig = 0

while counter > 0:

zahl1 = randint (100, 999, 10)
zahl2 = randint (100, 999, 10)
if zahl1 < zahl2:
zahl1 = kleiner
zahl2 = groesser
else:
zahl1 = groesser
zahl2 = kleiner

print (groesser)
print (' -')
print (kleiner)

ergebnis = int(input('Wie lautet das Ergebnis? '))

if ergebnis == (groesser - kleiner):
print ('richtig')
richtig = richtig + 1
else:
print ('falsch')

counter = counter - 1

print ()
print ('Richtige Lösungen:')
print (richtig)

Brings nicht auf die Reihe... :shock:

auch meine Versuche das ganze als Bedingung in eine while Schleife zu packen schlug fehl...

while zahl1 < zahl2

zahl1 = randint (100, 999, 10)
zahl2 = randint (100, 999, 10)

print (zahl1)
print (' -')
print (zahl2)

bin ratlos und finde in meinen Büchern nix was mein Problem lösen würde...
nezzcarth
User
Beiträge: 1306
Registriert: Samstag 16. April 2011, 12:47

Samstag 30. Januar 2021, 17:07

Du kannst die Zahlen in einer Liste ablegen und dann min und max verwenden:

Code: Alles auswählen

In [1]: from random import sample

In [2]: numbers = sample(range(1, 100), 2)

In [3]: numbers
Out[3]: [75, 51]

In [4]: min(numbers), max(numbers)
Out[4]: (51, 75)
Wenn du random.sample verwendest, ist auch sichergestellt, dass die zahlen verschieden sind.
Zuletzt geändert von nezzcarth am Samstag 30. Januar 2021, 17:16, insgesamt 2-mal geändert.
Benutzeravatar
__blackjack__
User
Beiträge: 8716
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Samstag 30. Januar 2021, 17:14

Wenn Rechenzeit/Komplexität sowieso keine Rolle spielt kann man auch `sorted()` verwenden: ``zahl2, zahl1 = sorted(sample(range(1, 100), 2)))``
long long ago; /* in a galaxy far far away */
Sirius3
User
Beiträge: 14594
Registriert: Sonntag 21. Oktober 2012, 17:20

Samstag 30. Januar 2021, 17:17

Es wäre noch gut, wenn Du die Fehlermeldung, die Du bekommst, auch zeigen würdest.
Was sollen denn die drei Zahlen bei randint bedeuten?
Und dann ist `kleiner` oder `groesser` nicht definiert.
Bevor man eine Funktion oder Konstrukt in einem Programm benutzt, liest man dazu die Dokumentation und probiert damit so lange herum, bis man verstanden hat, wie man es benutzt.
Noob4real
User
Beiträge: 3
Registriert: Samstag 30. Januar 2021, 15:54

Samstag 30. Januar 2021, 17:27

Vielen Dank euch...

Setzt mich heute Abend gleich davor...


Herzlichen Gruß
Noob4real
User
Beiträge: 3
Registriert: Samstag 30. Januar 2021, 15:54

Samstag 30. Januar 2021, 21:58

TOP...

Beide Tipps haben mein Problem gelöst...

Vielen Dank euch Beiden...

@ Sirius3... Danke, du hast natürlich recht... das mit der Fehlermeldung werde ich mir merken...

Herzliche Grüße, Noob4real
Antworten