@misterchi:
Wieso benutzt Du dieses umständliche Konstrukt ``Eingabe=int(sys.stdin.readline())`` statt eines einfachen ``Eingabe = int(input())``
Du könntest auch die Aufgabe in das ``input`` mit reinziehen, was imho noch hübscher aussieht und den "Nebeneffekt" hat, dass die Eingabe direkt nach dem Aufgabentext hinter dem ``=`` erfolgen kann; gerade so, als wäre das eine "echte" Shell:
(Wobei ``a`` und ``b`` für Deine beiden Faktoren stehen)
Anstelle der langen Form für das Inkrementieren kannst Du auch folgendes schreiben: ``versuche += 1``.
Generell solltest Du
PEP8 beachten; insbesondere bei der Namensgebung (kleine Namen!) und der Whitespaces zwischen Ausdrücken.
Im Schleifenkopf hast Du die ``20`` stehen und in der letzten Ausgabe auch; änderst Du die Anzahl der Durchgänge, vergisst Du die 20 im Text ganz bestimmt - oder anders herum. So etwas nennt man ``magic number`` und sollte vermieden werden. Definiere die Anzahl einfach als "Konstante" (per Konvention groß geschrieben):
Code: Alles auswählen
AUFGABEN = 20
for x in range(0, AUFGABEN):
# and so on
print('Du hast alle {} Aufgaben bearbeitet".format(AUFGABEN))
# kannst Du natürlich auch mittels ``%``-Operator zusammenbauen; ist primär Geschmackssache)
(Du hast übrigens noch mehr solche ``magic numbers`` in Deinem Code! Versuche dahinter zu kommen, welche das sind und wie man diese eliminieren kann
)
Wenn Du Dir nun die Anzahl an Aufgaben eh merkst, brauchst Du auch nur noch über eine Erfolgsgröße Buch führen; also etwa nur die richtigen Aufgaben. Die falschen Aufgaben sind dann eine Residualgröße aus der Aufgabenanzahl und den erfolgreichen (endlich kann ich dieses Wort mal wieder außerhalb einer BWL-Vorlesung anbringen
)
Dein Code enthält noch mehr syntaktische und semantische Fehler! Der Schleifenkopf kann so nicht sinnvoll klappen, da ``x`` nicht definiert ist und auch nirgends im Rumpf zugewiesen wird. Als Faustregel kannst Du Dir aber merken: Wenn die Anzahl der Durchläufe bekannt ist, nimm eine ``for``-Schleife! In Diesem Falle z.B.:
(Du greifst auf den Wert der Zählvariablen im Schleifenrumpf nicht zu, daher weist der Name ``_`` einen (erfahrenen) Pythonprogrammierer direkt auf diesen Umstand hin, was das Lesen und Deuten der Schleife vereinfacht)