Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
--- Praktische Informatik (http://www.informatikerboard.de/board/board.php?boardid=6)
---- Algorithmen (http://www.informatikerboard.de/board/board.php?boardid=17)
----- Python Primzahlen bestimmen (http://www.informatikerboard.de/board/thread.php?threadid=4052)


Geschrieben von TheErebos am 18.11.2018 um 00:39:

  Python Primzahlen bestimmen

Meine Frage:
Hey,

es tritt der Fehler:

file "Primes.py", line 10
break
^
SyntaxError: 'break' outside loop


auf, aber ich brauche den break um mit dem Vergleichen der laufenden Werte mit den Primzahlen aufzuhören, um Leistung zu sparen. Irgendwelche Ideen?





Meine Ideen:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
#!/usr/bin/python
#Get primes

start=input("All primes bigger than : ");
stop=input("All primes smaller than: ");

def get_primes(start, stop):
    
    if start<=stop+1:
        break
    primes = [2];

    for n in range(3, stop, 2):
        for p in primes:
            if n % p == 0:
                break
            else:
                primes.append(n)
    while primes[0] <= start:
        del primes[0]

print(primes);
input();



Geschrieben von as_string am 18.11.2018 um 14:48:

 

1. Ich hab mal code-Tags um den Quelltext gemacht, was ja besonders wichtig ist bei Python, weil sonst die ganzen Einrückungen weg sind...
2. Er meckert wegen des ersten breaks, das ja tatsächlich in keiner Schleife ist. Welche Schleife soll er denn abbrechen, wenn Du gerade in keiner drin bist?
Falls Du dann erst gar nicht in die Schleife rein willst, warum sagst Du dann nicht: if-Bedingung so erfüllt, dass Du die Schleife ausführen willst, dann mache Schleife, sonst brauchst Du nichts machen. Dann hast Du auch kein break.
Falls Du eigentlich das Programm an der Stelle beenden willst, dann ist in Python das break wohl nicht die richtige Anweisung. Ich kenne mich mit Python nicht aus, aber wäre dann ein sys.exit() oder quit() oder so nicht das, was Du eigentlich willst?

Gruß
Marco



Geschrieben von TheErebos am 18.11.2018 um 20:47:

 

Danke Augenzwinkern

Hatte die den falschen break im Kopf. Einfach mit einem return(); beendet.


Forensoftware: Burning Board, entwickelt von WoltLab GmbH