Hi,ich hab mir gestern Python 3.0 geholt und hab bei Youtube ein paar Tutorials durchgemacht.Jedoch hatte ich überall das selbe Problem:
Ich ging in Python rein--->New Window da tipp ich dann ein
print "Hello World!"
dann speicher ich das und geh dan auf run-->run module
Dann kommt folgender error: Syntax error: Invalid Syntax
Irgendetwas mach ich falsch ich hab es genauso wie im video geschrieben und zeigt jedes mal den Error an.
Syntax error:Invalid Syntax
In Python 3.0 ist print kein Statement mehr, sondern eine Funktion. http://docs.python.org/3.0/whatsnew/3.0 ... a-function
Code: Alles auswählen
print('Hello World!')
- nkoehring
- User
- Beiträge: 543
- Registriert: Mittwoch 7. Februar 2007, 17:37
- Wohnort: naehe Halle/Saale
- Kontaktdaten:
Du koenntest auch einfach dem angebotenen Link folgen und lesen was da steht...karel2 hat geschrieben:Achso,und jetzt kann ich nicht mehr print "Hello world" eingeben oder wie?
Und was soll ich jetzt eintippen das es funzt?
Oder soll ich mir gleich eine ältere Version von Python holen?
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
Den Aufruf von "print" als Funktion verstehen auch ältere Python-Versionen...
Keine Ahnung, wie sinnvoll es wäre, das zwecks Aufwärtskompatibiltät so zu handhaben. Ich persönlich werde erstmal weiterhin "print" in seiner Form als Statement nutzen. Bis Python 3.0 auf Linux/Unix-Systemen wirklich relevant (im Sinne von "must-have") wird, vergehen ohnehin noch ein paar Jahre.
Keine Ahnung, wie sinnvoll es wäre, das zwecks Aufwärtskompatibiltät so zu handhaben. Ich persönlich werde erstmal weiterhin "print" in seiner Form als Statement nutzen. Bis Python 3.0 auf Linux/Unix-Systemen wirklich relevant (im Sinne von "must-have") wird, vergehen ohnehin noch ein paar Jahre.
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Ich bezweifel, dass die alten Versionen print als Funktion verstehen und glaube eher, dass sie den "Parameter" eher als Tupel auffassen - wenn das falsch ist bitte ich um Berichtigungsnafu hat geschrieben:Den Aufruf von "print" als Funktion verstehen auch ältere Python-Versionen...
Es wird noch ne Weile dauern bis Python 3 der Standard ist, aber ich glaube nicht wirklich, dass das "noch ein paar Jahre" sind Es gibt dann bestimmt noch Legacy Code, aber der ist ja - sofern er 2.5+ ist - recht leicht zu portieren.
Okay, "Funktion" war falsch. Besser wäre "in dieser Form".
Also mein persönlicher Eindruck ist, dass Python 3.0 nicht vor Ende nächsten Jahres in die großen Distributionen integriert ist. Und selbst dann schätze ich, dass die ganzen 2.5er und 2.6er Skripte (mindestens letztere) noch lauffähig sein werden. (Achtung: Gefährliches Halbwissen, verbessert mich im Zweifel mit Fakten).
Naja, vielleicht sollte ich meine kühnen Vermutungen auch manchmal besser für mich behalten. Ich befürchte, es wird hier noch einige Widersprüche in Bezug auf meine Aussagen geben... ^^
Also mein persönlicher Eindruck ist, dass Python 3.0 nicht vor Ende nächsten Jahres in die großen Distributionen integriert ist. Und selbst dann schätze ich, dass die ganzen 2.5er und 2.6er Skripte (mindestens letztere) noch lauffähig sein werden. (Achtung: Gefährliches Halbwissen, verbessert mich im Zweifel mit Fakten).
Naja, vielleicht sollte ich meine kühnen Vermutungen auch manchmal besser für mich behalten. Ich befürchte, es wird hier noch einige Widersprüche in Bezug auf meine Aussagen geben... ^^
Ist die Frage was du damit meinst, bei Arch ist Python 3 schon kurz nach dem erscheinen im Repo gelandet. Solltest du allerdings damit meinen dass jedes Skript normalerweise mit Python 3 ausgeführt wird hast du vermutlich recht.snafu hat geschrieben:Also mein persönlicher Eindruck ist, dass Python 3.0 nicht vor Ende nächsten Jahres in die großen Distributionen integriert ist.
Halb falsch.cofi hat geschrieben:Ich bezweifel, dass die alten Versionen print als Funktion verstehen und glaube eher, dass sie den "Parameter" eher als Tupel auffassen - wenn das falsch ist bitte ich um Berichtigung
Richtig ist: print ist keine Funktion in Python 2.x!
Falsch ist: Es wird nicht als Tupel aufgefasst, sondern es sind einfach überflüssige, aber zulässige Klammern, die der Gruppierung dienen.
Edit: Kleiner Nachtrag zur Illustration:
Code: Alles auswählen
In [5]: type(("hallo"))
Out[5]: <type 'str'>
In [7]: type(("hallo",))
Out[7]: <type 'tuple'>
Zuletzt geändert von numerix am Freitag 19. Dezember 2008, 15:11, insgesamt 1-mal geändert.
Weiß ich nicht. Fakt ist z.B. dass die allerneueste OpenSUSE 11.1 von gestern "nur" Python 2.6 mitbringt.snafu hat geschrieben:Also mein persönlicher Eindruck ist, dass Python 3.0 nicht vor Ende nächsten Jahres in die großen Distributionen integriert ist. Und selbst dann schätze ich, dass die ganzen 2.5er und 2.6er Skripte (mindestens letztere) noch lauffähig sein werden. (Achtung: Gefährliches Halbwissen, verbessert mich im Zweifel mit Fakten).
Fakt ist aber auch, dass es von ActiveState schon eine 3.0 Version gibt, die man distributionsunabhängig in einen beliebigen Ordner installieren kann. Solange man mit der Standardbibliothek (inkl. Tkinter/Tix) auskommt, langt das.
Wenn man nur einen Argument übergibt, tupel gehen aber auchnumerix hat geschrieben:Falsch ist: Es wird nicht als Tupel aufgefasst, sondern es sind einfach überflüssige, aber zulässige Klammern, die der Gruppierung dienen.
Um das Problem zu illustrieren:
Code: Alles auswählen
In [379]: name = 'Marc'
In [380]: print('Hallo,', name)
('Hallo,', 'Marc')
In [381]: print 'Hallo,', name
Hallo, Marc
Und im Vgl. dazu in Python 3.0:
Code: Alles auswählen
>>> name = 'Marc'
>>> print('Hallo,', name)
Hallo, Marc
Aha naja jetzt hab ich shcon das nächste Problem,ich hab eine Datei gemacht:
print ("GutenTag")
raw_input("Press enter to end")
Dies sollte ja bewirken das das schwarze Fenster dauerhaft dableibt und nicht gleich nach dem Doppelklick verschwindet oder?
print ("GutenTag")
raw_input("Press enter to end")
Dies sollte ja bewirken das das schwarze Fenster dauerhaft dableibt und nicht gleich nach dem Doppelklick verschwindet oder?
Ich will Python lernen!
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Das ist so oder so eine schlechte Idee. Lies mal in den FAQ den Punkt "wie starte ich Skripte".karel2 hat geschrieben:Dies sollte ja bewirken das das schwarze Fenster dauerhaft dableibt und nicht gleich nach dem Doppelklick verschwindet oder?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Und am besten auch gleich die ersten paar Seiten des Tutorials zu 3.0, sonst bleibst du dauernd an solchen Sachen hängen.Leonidas hat geschrieben:Lies mal in den FAQ den Punkt "wie starte ich Skripte".
Oder du benutzt weiter deine Lieblingsdoku zu 2.x und arbeitest nicht mit Python 3.0 ...