Python wird immer komplizierter

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
BlackJack

Donnerstag 29. November 2007, 16:59

Jede ernst zu nehmende Erweiterung des eingebauten BASICs hat auch einen RENUMBER-Befehl mit dem man Zeilen neu durchnummerieren kann, wobei selbstverständlich die Sprungbefehle angepasst werden. So etwas selber zu schreiben ist auch eine gute Übung, ob man das interne Speicherformat von BASIC auf dem C64 verstanden hat. :-)
Costi
User
Beiträge: 544
Registriert: Donnerstag 17. August 2006, 14:21

Donnerstag 29. November 2007, 17:15

o mein gott!

mein informatik lehrer tut mir immer mehr leid :lol: :lol:

aber gut, wenn ich bedenke was in 10 jahren alles moeglich sein wird...
cp != mv
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Donnerstag 29. November 2007, 17:40

Dabei sind wir noch gar nicht bei den Lochkarten angekommen. :P
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
tux21b
User
Beiträge: 18
Registriert: Mittwoch 15. Februar 2006, 23:20
Wohnort: Linz.at
Kontaktdaten:

Donnerstag 29. November 2007, 17:54

Und noch eine Anmerkung zu Metaklassen, die du auch kritisiert hast. Das Typ/Objekt/Instanz System in Python weicht etwas vom klassischen Ansatz der meisten anderen Programmiersprachen ab und ist deshalb auch nicht so einfach zu verstehen.

Zum einen braucht man Metaklassen aber sowieso eher selten und wenn dann lassen sie sich auch gut verstecken und tragen wesentlich zur besseren Lesbarkeit und Einfachheit des Programms bei. Das beste Beispiel hier sind wohl die Django Model Klassen, welche beim Erzeugen auch gleich alle SQL-Statements anlegen und auführen, aber es gibt auch noch eine Vielzahl von anderen Klassen wo man es vermutlich gar nicht merkt.

Also mir gefällt die Entwicklung bei Python bis jetzt noch sehr gut und hoffe das die Performance von Py3k (genauer gesagt von der CPython Version) auch noch etwas zunimmt bis zum Release.

Gruß
Christoph
[url]http://www.ubuntuusers.de[/url]
Imperator
User
Beiträge: 275
Registriert: Montag 20. August 2007, 14:43
Kontaktdaten:

Donnerstag 29. November 2007, 18:40

Rebecca hat geschrieben:Dabei sind wir noch gar nicht bei den Lochkarten angekommen. :P
bitte einen Grundkurs!
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Donnerstag 29. November 2007, 20:38

War heute im Buchladen und habe mir die dritte Ausgabe von "Programming Python" angesehen, die für Python 2.5 aktualisiert wurde. Das Buch hat stolze 1600 Seiten und ist noch um einige Seiten dicker als Programming Ruby (Pickaxe) :)
Ich glaube ich habe in all den Jahren zusammen nie 1600 Seiten Python-Dokumentation gelesen :D
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Costi
User
Beiträge: 544
Registriert: Donnerstag 17. August 2006, 14:21

Donnerstag 29. November 2007, 22:22

hab das alte hier bei mir rummliegen: 1552 seiten
insofern...


der autor drueckt alles einfach viel zu kompliziert aus
(und schreibt alles in camelCase :evil: )
cp != mv
meneliel
User
Beiträge: 256
Registriert: Montag 25. Juni 2007, 08:35
Kontaktdaten:

Donnerstag 29. November 2007, 23:06

Leonidas hat geschrieben:War heute im Buchladen und habe mir die dritte Ausgabe von "Programming Python" angesehen, die für Python 2.5 aktualisiert wurde. Das Buch hat stolze 1600 Seiten und ist noch um einige Seiten dicker als Programming Ruby (Pickaxe) :)
Ich glaube ich habe in all den Jahren zusammen nie 1600 Seiten Python-Dokumentation gelesen :D
das steht hier neben mir auf dem Tisch ... und das ist sooo schwer........ und es past auch nicht in die Handtasche und schon gar nicht mit Notebook zusammen ..... aber gelesen hab ich es noch lange nicht fertig .... :oops:
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Freitag 30. November 2007, 07:19

Leonidas hat geschrieben:und ist noch um einige Seiten dicker als Programming Ruby (Pickaxe)
Also ist Python jetzt schon komplizierter als Ruby? :)
Jan-Peer
User
Beiträge: 166
Registriert: Dienstag 2. Oktober 2007, 10:55

Freitag 30. November 2007, 09:04

Nee, aber man kann mehr mit machen, und das muß halt beschrieben werden :twisted:
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Freitag 30. November 2007, 12:54

Sprachtechnisch kann man mit Python wohl weniger machen, aber die Stdlib scheint mir doch etwas umfangreicher zu sein - das will auch alles beschrieben sein. Allerdings habe ich das Buch nicht, wenn ich mir das Inhaltsverzeichnis ansehe scheinen da aber auch ziemlich viele nicht wirklich interessante Themen zu sein. So sind die Kapitel über Tkinter arg lang, und Server Side Scripting sollte wohl aus dem Buch inzwischen entfernt werden.

Wahrscheinlich kommt eben so die große Seitenanzahl zusammen.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Erwin
User
Beiträge: 141
Registriert: Donnerstag 9. Juni 2005, 08:51

Sonntag 6. Januar 2008, 15:44

Thread mal wieder herauf holt.
Muss ja nicht für alles ein neuer aufgemacht werden.

Mir geht es hier in dem Fall um print, da dies unter anderem auch angesprochen wurde.

Wenn ich das richtig verstanden haben, wird print also eine Funktion und kann somit mit:

Code: Alles auswählen

print('variable')
Texte ausgeben?
Was derzeit übrigens auch geht, bzw. sind das dann Listings.
Und genau an dem Punkt komme ich jetzt total durcheinander.
Wenn man

Code: Alles auswählen

print('var1','var2','var3')
eingibt, gibt er ja eine Listing von "('var1','var2','var3')" aus.
Anders als wenn man

Code: Alles auswählen

print 'var1','var2','var3'
schreibt.
Da spuckt er jedes einzeln aus, also ohne Klammern = "var1,var2,var3".

Wie funktioniert dann mit dem neuen print als Funktion dann noch das Listing??
Ich mache nie einen Fehler Zweimal.
Schließlich ist die Auswahl ja groß genug.
BlackJack

Sonntag 6. Januar 2008, 15:57

Was Du das als "Listing" bezeichnest heisst Tupel. Und Deine Ausgabe für das 2.5er ``print`` ohne Klammern dürfte keine Kommata enthalten.

Ich weiss jetzt ehrlich gesagt nicht so ganz was Du wissen willst. Wenn Du in Python 3.x ein Tupel ausgeben willst, dann musst Du das genau wie in 2.5 einfach angeben.

In 3.0:

Code: Alles auswählen

>>> print('var1', 'var2', 'var3')
var1 var2 var3
>>> print(('var1', 'var2', 'var3'))
('var1', 'var2', 'var3')
In 2.5:

Code: Alles auswählen

In [27]: print 'var1', 'var2', 'var3'
var1 var2 var3

In [28]: print ('var1', 'var2', 'var3')
('var1', 'var2', 'var3')
Da ist abgesehen von einem Klammerpaar kein Unterschied zwischen den beiden Versionen.
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

Sonntag 6. Januar 2008, 16:33

Hi Erwin!

Ich vermute du fragst dich, was genau passiert wenn man sowas hier macht (Python 2.5):

Code: Alles auswählen

print arg1, arg2, arg3
Das ist ganz einfach. Die Print-Anweisung gibt nacheinander jedes arg aus, indem es die stringrepresentation (arg.__repr__) des Objektes zurueckgibt. Die Anweisung ist also das gleiche wie zB:

Code: Alles auswählen

print arg1,
print arg2,
print arg3
Das Komma hat in dem Fall den Effekt, dass kein Zeilenumbruch angehaengt wird, nachdem arg ausgegeben wurde.

Solange du Rueckgabewerte hast, kannst du so alles moegliche ausgeben, (fast) ohne auf den Objekttyp achten zu muesen (immernoch Python 2.5):

Code: Alles auswählen

def rueckgabefunktion():
    return "bla", "blub"

print 5, "5", (5,5), [5,5], {"5": 5}, True, False, None, rueckgabefunktion
Ausgabe:

Code: Alles auswählen

5 5 (5, 5) [5, 5] {'5': 5} True False None ('bla', 'blub')
[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
Erwin
User
Beiträge: 141
Registriert: Donnerstag 9. Juni 2005, 08:51

Sonntag 6. Januar 2008, 16:46

Tulpel, stimmt.
Bringe die Beiden immer durcheinander.

Stimmt ja.
:oops:
Einfach noch mal Klammern machen.
War wohl derzeit total durcheinander.
Hatte es Heute einfach mal getestet, ob es nicht schon bei 2.5 geht, da kam bei

Code: Alles auswählen

print 'var1'
print('var1')
Beiden das gleiche raus.
Dachte deshalb, dass es bereits mit 2.5 möglich ist.
Inzwischen fiel mir aber ein, dass keins von den Beiden ein Tulpel ist, weil ja ein Komma fehlt:

Code: Alles auswählen

print('var1',)
Hat mich alles leider durcheinander gebracht.
Sorry.


Ob man vielleicht eine Zusammenfassung erstellen kann, über die Veränderungen?
Und zwar im Positiven Sinne.
Wo man also vor allem die Vorteile hervorhebt?
Wäre für mich, der etwas gegen ständigem Wechsel (von einer Version zur nächsten ... ) was hat, sehr hilfreich.
Oder gibt es schon so was auf Deutsch?

Wie sieht es eigentlich mit der Zukunft von 2.5 aus?
Wird es dies dann irgendwann nicht mehr geben?
Oder wird es auch weiterhin zur Verfügung stehen und problemlos auf derzeitige BS und auch auf neuere BS installiert werden können?


edit:
@ nkoehring

Nun, diese Frage stellte sich indirekt zugleich mit der Frage, wie man Tulpel macht, oder umgekehrt (nicht macht).
Bzw. wie print dann auseinander halten soll, was Tulpel ist, und was jeweils einzeln ausgeben werden soll.
Aber das man dann für Tulpel zusätzlich noch mal eine Klammer macht, wäre eigentlich ja das naheligenste gewesen.
Ich mache nie einen Fehler Zweimal.
Schließlich ist die Auswahl ja groß genug.
Antworten