Seite 1 von 2

"Wie ein Informatiker denke..." inkompatibel mit P

Verfasst: Montag 15. Dezember 2008, 08:53
von Dr.Miles
Hallo, ist das o.g. Tutorial (und so manch andere die ich überflogen habe) nicht mehr aktuell? Folgendes Beispiel:

Code: Alles auswählen

Python 2.4.2 (#2, Sep 30 2005, 21:19:01)
[GCC 4.0.2 20050808 (prerelease) (Ubuntu 4.0.1-4ubuntu8)] on linux2
Type "copyright", "credits" or "license()" for more information.
>>> print 1 + 1
2
>>> 
führt bei mir zu:

Code: Alles auswählen

>>> print 1 + 1
SyntaxError: invalid syntax (<pyshell#4>, line 1)
analog die Ausgabe von Strings:

Code: Alles auswählen

>>> print "otz"
SyntaxError: invalid syntax (<pyshell#5>, line 1)
Nun habe ich ein bisschen C-Erfahrung und dachte, machste das mal zur Funktion:

Code: Alles auswählen

>>> print (1+1)
2
>>> print("lol")
lol
Nicht das ich mich nicht freuen würde ein Problem in einer mir unbekannten Sprache gelöst zu haben, aber ich denke nicht das ich mit Tutorials arbeiten kann, wo die Beispiele falsch sind? Kann mir jemand sagen was da los ist? Liegts an meinem System?
Ist ein XP Python-Version: Python 3.0 (r30:67507)

Gruß
Dr.Miles

Verfasst: Montag 15. Dezember 2008, 08:56
von DasIch
Das Tutorial ist für Version Python 2.* geschrieben worden, da war print noch ein statement, in Python 3 ist es eine Funktion, wie du ja schon bemerkt hast.

Ich würde dir empfehlen momentan Python 2.6 zu benutzen da bisher nur weniger 3rd Party Libs Python 3 kompatibel sind.

Verfasst: Montag 15. Dezember 2008, 09:03
von Dr.Miles
Wow 3 Minuten, und das um die Uhrzeit, Respekt :-)
Vielen Dank für die Lösung!
Ist es denn sinnvoll (für die Zukunft) jetzt das alte zu lernen, oder sind die Änderungen nicht so gravierend?
Gruß
Dr.Miles

Verfasst: Montag 15. Dezember 2008, 09:09
von DasIch
Es gibt ein Skript(2to3.py) mit dem du Code von Python 2 zu Python 3 größtenteils konvertieren kannst. Um zu testen ob das Einwandfrei funktioniert kannst du ab 2.6 den Interpreter mit dem Parameter -3 starten, dann bekommst du entsprechende Warnungen.

Die Änderungen sollte man recht schnell drin haben, dafür sollte man sich dann What's new für Python 3 ansehen. Hauptänderungen sind in den Bereichen Unicode anzutreffen außerdem wurden Iteratoren besser integriert und die stdlib aufgeräumt.

Verfasst: Montag 15. Dezember 2008, 11:12
von numerix
Dr.Miles hat geschrieben:Ist es denn sinnvoll (für die Zukunft) jetzt das alte zu lernen, oder sind die Änderungen nicht so gravierend?
"Gravierend" ist sicher relativ. Es gibt einige grundlegende Änderungen, die z.B. dazu führen, dass gültiger Python-Code der Versionen vor 3.0 unter Umständen nicht mehr läuft. Da von den Änderungen auch ganz grundlegende Dinge wie z.B. Ein- und Ausgabe über die Konsole und die Division betroffen sind, werden diese "Umstände" ziemlich häufig eintreten.

Ob es für dich sinnvoller ist, mit Python 2.6 zu beginnen oder mit 3.0 hängt auch davon ab, was deine Ziele mit Python sind und wie schnell du dabei vorankommst. Wenn es zunächst einmal um das Erlernen von reinem Python geht und du mit der Standardbibliothek auskommst, würde ich gleich mit 3.0 einsteigen.

Wenn du genauer angeben könntest, was deine Ziele sind, könnte man das präziser beantworten.

An Dokumention für 3.0 gibt es neben dem offiziellen Tutorial auch bereits eine angepasste Fassung von A Byte of Python.

Python 2.X.oder 3.X?

Verfasst: Dienstag 16. Dezember 2008, 20:36
von farid
Dr.Miles hat geschrieben:Ist es denn sinnvoll (für die Zukunft) jetzt das alte zu lernen, oder sind die Änderungen nicht so gravierend?
Da noch eine ganze Weile alter Python 2.X Code in Umlauf sein wird, ist es nicht falsch es zu koennen.

Verfasst: Donnerstag 18. Dezember 2008, 00:37
von Dr.Miles
Meine Ziele liegen darin, erstmal die Grundlagen zu lernen (was ich gerade tue mit der 2.6) und dann Client/Server Geschichten (TCP/IP) zu lernen.
Habe jetzt die 2.6er auch deswegen genommen, weil ich eben kein/kaum deutsches Material zu der 3.0 gefunden habe.

Gruß
Dr.Miles[/code]

Verfasst: Donnerstag 18. Dezember 2008, 01:00
von Leonidas
Dr.Miles hat geschrieben:Habe jetzt die 2.6er auch deswegen genommen, weil ich eben kein/kaum deutsches Material zu der 3.0 gefunden habe.
Du solltest dich generell darauf einstellen, dass du Dokumentation auf englisch lesen wirst. Mit deutschsprachiger Doku kommt man nur irgendwieweit.

Docstrings

Verfasst: Samstag 20. Dezember 2008, 19:18
von farid
Leonidas hat geschrieben:Du solltest dich generell darauf einstellen, dass du Dokumentation auf englisch lesen wirst. Mit deutschsprachiger Doku kommt man nur irgendwieweit.
Richtig. Da ausserdem viele Dokus aus Docstrings automatisch erstellt werden, macht es keinen Sinn sie in einer anderen Sprache als Englisch zu schreiben. ;)

Auch mal eine Frage

Verfasst: Sonntag 11. Januar 2009, 11:37
von Zemo
Hallo zusammen.
Ich bin neu hier im Forum und versuche gerade Python 3 zu lernen. Habe keine Vorkenntnisse mit einer anderen Python Version und fange deshalb mit der 3 an.

Doch nun gibt es ein Problem an einer Stelle im Tutorial "Wie ein Informatiker denken lernen".

Und zwar steht dort folgendes Script:

Code: Alles auswählen

i = 1
while i <= 6:
  print 2*i, '   ',
  i = i + 1
print 
Der eine Zahlenreihe nebeneinander ausgeben soll.

Da ja in Python 3 print eine Funktion ist habe ich den Code so geändert:

Code: Alles auswählen

i = 1
while i <= 6:
  print (2*i, '   ', ) 
  i = i + 1
print()
Allerdings stehen die Zahlen dann nicht nebeneinander sonder immer in einer neuen Reihe. Könnte mir bitte jemand einen Tipp geben wo mein Fehler liegt?
Danke schon einmal im vorraus für eure Hilfe.
Mfg Zemo

Verfasst: Sonntag 11. Januar 2009, 12:07
von Leonidas
Hallo Zemo, willkommen im Forum,

Das Komma braucht du am Schluss nicht mehr, das war nur syntaktischer Zucker von ``print``.

Du kannst dir die Dokumentation zu print mal ansehen. Als Tipp: ``\n`` ist New-Line, also müsstest du das ersetzen.

Verfasst: Sonntag 11. Januar 2009, 12:12
von sma

Code: Alles auswählen

print(2 * i, end="    ")
Stefan

Verfasst: Sonntag 11. Januar 2009, 12:59
von Zemo
Danke schön.
Eine kleine Frage hätte ich da noch. Gibt es eigentlich ein deutsches manuell ähnlich wie das http://www.php.net/manual/de/ für php?

Verfasst: Sonntag 11. Januar 2009, 13:09
von Leonidas
Also etwas mit ähnlich schlechten Kommentaren? Nein, da muss ich dich enttäuschen, in Python muss man programmieren und kann nicht nur schlechten Code copypasten ;)

Wenn du nach einem deutschsprachigen Tutorial suchst, kannst du dir ABOP-German ansehen. Aber das hilft dir nichts mehr, wenn du mehr als die Stdlib brauchst.

Verfasst: Sonntag 11. Januar 2009, 13:15
von numerix
Leonidas hat geschrieben:Wenn du nach einem deutschsprachigen Tutorial suchst, kannst du dir ABOP-German ansehen. Aber das hilft dir nichts mehr, wenn du mehr als die Stdlib brauchst.
Wobei ihm das für Python 3.0 auch nur bedingt hilft, wenn er die deutsche Fassung nehmen möchte. AFAIK gibt es z.Zt. noch kein deutschsprachiges Tutorial zu Python 3.0.

Aber statt darauf zu warten könntest du die Zeit bis dahin nutzen, deine Englischkenntnisse soweit aufzubohren, dass du mit der Original-Doku zurecht kommst. Das ist auf jedenfall eine Investition in die Zukunft. :wink: