Das witzigste Problem der Welt.

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Suppenkasper
User
Beiträge: 3
Registriert: Freitag 21. Mai 2010, 13:05

Python Windows installiert.

Konsole oder IDLE auf

-> Print "Hallo World"

-> Syntax Error

bin ich doof oder wie jetzt ?

Kasperl.
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

Weil Python Case-Sensitive ist, ist Groß- und Kleinschreibung wichtig. Wenn du Python ab Version 3.0 benutzen solltest, fehlen zusätzlich noch die Klammern, da ``print()`` dann eine Funktion ist.

Grüße
Gerrit
problembär

gkuhl hat geschrieben:Wenn du Python ab Version 3.0 benutzen solltest, fehlen zusätzlich noch die Klammern, da ``print()`` dann eine Funktion ist.
... was total bescheuert und überflüssig ist, wie ich schonmal bemerkt habe (denn man hätte im Interpreter den Code von 2.x, der 'print' daneben auch als Anweisung erkennt, einfach beibehalten können (hat man aber nicht)).
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

problembär: Wie hätte man das deiner MEinung nach anstellen sollen? Wie soll man print gleichzeitig als Statement und als Funktion akzeptieren? Wie lässt sich dieses Ziel konkret technisch umsetzen?
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

problembär hat geschrieben:... was total bescheuert und überflüssig ist, wie ich schonmal bemerkt habe (denn man hätte im Interpreter den Code von 2.x, der 'print' daneben auch als Anweisung erkennt, einfach beibehalten können (hat man aber nicht)).
Du meinst in der Shell print als statement verfügbar machen? Es gibt keinen Grund da einen Spezialfall draus zu machen, es sei den man will Leute verwirren oder einen Aprilscherz machen.
BlackJack

@problembär: Und vor allem wenn ``print`` beides ist, was soll dann bei ``print (x, y)`` passieren? Sollen die Inhalte von `x` und `y` durch ein Leerzeichen getrennt ausgegeben werden, oder soll das Tupel `(x, y)` ausgegeben werden?

Wie soll sich die Anweisung ``print`` verhalten, wenn der Name `print` an eine andere Funktion als das "built-in" gebunden wird?
Suppenkasper
User
Beiträge: 3
Registriert: Freitag 21. Mai 2010, 13:05

oh :(

darf ich mit noch mehr solchen Überraschungen rechnen? Steige gerade von 2.0 oder 2.1
um auf 3.x (habe seit Jahren nicht viel gemacht am Python - mich schockt diese Änderung nun ziemlich, da ich nicht weiss, welche Parameter sich noch geändert haben :( nun leuchtet mir auch ein, wieso es P2,5 und 3.x zum dl gab)

Kasperl
BlackJack

@Suppenkasper: Ja Du solltest mit mehr "Überraschungen" rechnen. Bei 3.x wurden Sachen geändert die eigentlich schon lange angefasst werden sollten, die aber nicht rückwärtskompatibel sind. Lies Dir am besten die entsprechenden PEPs und die "What's new"-Abschnitte in der Dokumentation von allen Versionen durch, die zwischen Deiner letzten und der die Du jetzt verwenden willst, liegen. Dann sind die Überraschungen keine mehr. :-)

Wenn es keinen wichtigen Grund gibt die 3.x zu verwenden, würde ich empfehlen noch bei der aktuellen 2er zu bleiben. Insbesondere solltest Du vorher abklären ob alle Bibliotheken, die Du benötigst, schon auf die 3er portiert wurden.
Antworten