2012-04-09 24 views
1

Ich habe Probleme, eine Liste in Python zu drucken. Ich möchte alle Elemente in einer Liste mit dem folgenden Code ausdrucken, speziell die letzten zwei Zeilen.Drucken von Listen in Python

def primefind(n): 
    mylist = [] 
    x = 3 
    while (x < n/2): 
    if ((n % x) == 0): 
     mylist.append(x) 
     x = x + 2 
    for item in mylist: 
    print item 

Ich bekomme einen Syntaxfehler, wenn ich dies ausführen. Es markiert "Element" in der letzten Zeile. Soweit ich sagen kann, ist es syntaktisch korrekt, so dass ich verwirrt bin! Auch diese Seite zeigt die gleiche Syntax wie ich verwendet habe http://effbot.org/zone/python-list.htm#looping

Irgendwelche Ideen, wo ich falsch gelaufen bin?

+0

Auch ich weiß nicht, ob dies ein Tippfehler ist, aber es sieht so aus, als müssten Sie die x = x + 2 aus dem if-Block – 8bitwide

+0

Ja, das ist nur ein Tippfehler. Guter Fang aber. – user1322388

+1

Sie benötigen keine Klammern um Bedingungen in 'if'- und' while'-Anweisungen in Python. –

Antwort

13

Sie verwenden Python 2.x-Syntax mit einem 3.x-Interpreter. print ist eine Funktion in Python 3.x, so dass Sie

print(item) 

stattdessen verwenden sollten.

+3

Perfekt danke. Ich bin neu in Python, also muss ich mich wirklich an die Dinge gewöhnen, die sich zwischen den Versionen so sehr ändern! – user1322388