Guten morgen,
Ich schreibe erst seit sehr kurzer Zeit in meiner Freizeit mit Python. Aktuell schreibe ich einen Rechentrainer habe aber noch kein Buch dazu. Ich bin gerade dabei mit Hilfe von try except (weiß, dass es kein guter Stil ist) das Ergebnis zweier durcheinander geteilter Zahlen zu überprüfen. Ich möchte 2 Zufallszahlen haben die durcheinander teilbar sind. Vereinfacht sieht das ganze wie folgt aus:
import random
while True:
teilera = random.randint(1,100)
teilerb = random.randint(1,100)
l = teilera/teilerb
print(l)
try:
l = int(l)
break
except Exception:
print("lädt")
continue
print(teilera, teilerb)
Die Konsole gibt mir, dann l aus wobei l kein Integer ist. Allerdings geht das ganze dann nicht ins except. Wenn ich aber einfach statt
teilera = random.randint(1,100)
teilerb = random.randint(1,100)
l = teilera/teilerb
nur l = 0.2 eingebe, geht das Ganze.
Das ist doch komplett unlogisch oder?!?!
Bin ich jetzt zu doof um Variablen zu definieren?
Entschluldigung für diese typische Anfängerfrage,
aber ich kann mir das mit meinen fast nicht vorhandenen Prgrammierkönnen einfach nicht erklären
Hoffentlich könnt ihr mir da weiterhelfen.
Mfg
Frage eines vor den Kopf gestoßenen Anfängers
-
- User
- Beiträge: 3
- Registriert: Montag 23. Juli 2018, 09:40
Ups die Einrückungen xD sry
Du setzt garantiert I = 0.2. Sondern I = “0.2”, was ein String ist. Und den zu konvertieren schlägt dann fehl. Du bekommst durch die Division aber natürlich eine Float-Zahl.
Das ist aber kein Grund , so vorzugehen. Nimm stattdessen das built in divmod:
Das ist aber kein Grund , so vorzugehen. Nimm stattdessen das built in divmod:
Code: Alles auswählen
>>> divmod(10, 3)
(3, 1)
-
- User
- Beiträge: 3
- Registriert: Montag 23. Juli 2018, 09:40
Super danke;)
Clevere Lösung
Clevere Lösung