Wie der Titel schon sagt habe ich ein Problem mit einer while-Schleife. Ich habe erst vor einer Woche mit Python angefangen, also bitte etwas Nachsicht.
Zum Programm:
Ich versuche gerade ein Programm zu schreiben das mir Zahlen darauf testet ob sie Primzahlen sind. Zuerst wird eine Textdatei (primzahlen2.txt) geöffnet und alle Zahlen (Primzahlen) die sich darin befinden eingelesen. Danach werden alle ungeraden Zahlen durch die eingelesenen Zahlen dividiert. Schließlich soll bei einem Fund die Primzahl ans Ende der Textdatei geschrieben werden um dann wieder von vorne anzufangen. Leider scheint in der zweiten while-Schleife ein Fehler zu sein, den ich aber einfach nicht finden kann.
Inhalt der Textdatei (primzahlen2.txt):
2, 3, 5, 7,
Zum Problem:
Die zweite while-Schleife sollte eigentlich bei einem Fund nicht mehr ausgeführt werden und die Werte wieder zurückgesetzt werden. Aber sie wird solange ausgeführt bis der Index zu hoch ist und eine Fehlermeldung wird ausgegeben.
Ausgabe des Programms mit Fehlermeldung:
Code: Alles auswählen
9
Traceback (most recent call last):
File "/home/mathias/Dokumente/Programmieren/Python/neuprim.py", line 11, in <module>
while (zahlendurchlauf % int(primzahlen[i][0]) != 0):
IndexError: list index out of range
Code: Alles auswählen
zahlendurchlauf = 9
i = 0
while True:
einlesen = open("primzahlen2.txt", "r")
for line in einlesen:
line = line.strip()
primzahlen = line.split(", ")
einlesen.close()
while (zahlendurchlauf % int(primzahlen[i][0]) != 0):
i += 1
zahlendurchlaufstring = str(zahlendurchlauf)
ausgabe = open("primzahlen2.txt", "a")
ausgabe.write(zahlendurchlaufstring + ", ")
ausgabe.close()
print (zahlendurchlauf)
i = 0
zahlendurchlauf += 2
Kritik und Verbesserungsvorschläge zum Code werden gerne angenommen. Bin schließlich am Lernen.
Vielen Dank im Vorraus,
georgebaker