String verarbeiten, erster und letzter Buchstabe

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.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Sonntag 3. Mai 2009, 11:06

hendrikS hat geschrieben:Wozu dann eigentlich das format attribute.

Naja, weil da einige dagegen waren die printf-Syntax rauszunehmen (das war ursprünglich geplant). Generell ist aber das neue Format idR. zu bevorzugen. Ist ja auch klarer.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
hendrikS
User
Beiträge: 420
Registriert: Mittwoch 24. Dezember 2008, 22:44
Wohnort: Leipzig

Beitragvon hendrikS » Sonntag 3. Mai 2009, 11:16

DasIch hat geschrieben:Du findest es also elegant den Modulo Operator zu missbrauchen?


Das ist doch kein Mißbrauch. % ist halt in Zusammenhang mit verschiedenen Typen auch verschieden anzuwenden.
Genauso bei +. Summe oder Konkatinieren. Zwei paar Schuhe. Oder willst Du Strings/Listen zukünftig nicht mehr mit + verbinden können dürfen.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Sonntag 3. Mai 2009, 11:25

hendrikS hat geschrieben:Das ist doch kein Mißbrauch. % ist halt in Zusammenhang mit verschiedenen Typen auch verschieden anzuwenden.
Genauso bei +. Summe oder Konkatinieren. Zwei paar Schuhe. Oder willst Du Strings/Listen zukünftig nicht mehr mit + verbinden können dürfen.

Doch ist es. Unter einer Listenaddition würde man das Verbinden von Listen verstehen (oder eventuell eine komponentenweise Addition), aber was wäre semantisch der Rest der Division von einem String durch einen String oder ein Tupel?
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
Dill
User
Beiträge: 470
Registriert: Mittwoch 10. Januar 2007, 14:52
Wohnort: Köln

Beitragvon Dill » Sonntag 3. Mai 2009, 11:42

also wirklich man kanns ja auch übertreiben.

ich finde die printf syntax sehr angenehm und schlüssig.
DasIch
User
Beiträge: 2423
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Beitragvon DasIch » Sonntag 3. Mai 2009, 11:46

hendrikS hat geschrieben:Zwei paar Schuhe.

Exakt dass ist es. Wenn ich Sequenzen mit + verbinden kann ist dass durchaus noch logisch und nachvollziehbar aber was bitteschön ergibt Modulo für Strings und wenn Modulo geht was bewirkt dann erst eine Division?

Hier wurde einfach der nächst beste Operator genommen und missbraucht.

Ein Glück dass das demnächst deprecated wird.
Benutzeravatar
hendrikS
User
Beiträge: 420
Registriert: Mittwoch 24. Dezember 2008, 22:44
Wohnort: Leipzig

Beitragvon hendrikS » Sonntag 3. Mai 2009, 11:48

Na, wie dem auch sei. Ich finds nicht schlimm % zur Formatierung einzusetzen. Kann bis jetzt sehr gut damit leben.
So lange ich mir über die Semantik der Operatoren im Klaren bin.
Ich meine, es gibt andere Baustellen, wie z.Bsp. Performance oder die Abgrenzung von Listen und Tuples (hatte ich glaube ich neulich schon mal kurz erwähnt), wo man hätte mal was machen können. Aber das war ja nicht das Thema des OP.
Benutzeravatar
Dill
User
Beiträge: 470
Registriert: Mittwoch 10. Januar 2007, 14:52
Wohnort: Köln

Beitragvon Dill » Sonntag 3. Mai 2009, 11:55

Hier wurde einfach der nächst beste Operator genommen und missbraucht.


nein. % bietet sich an, da er der C format-operator ist.
der war schon format - op, da bist du noch der blaßmusik hinterhergelaufen =) (!!)

wen verwirrt das denn bitte ernsthaft? niemanden...

wenn schon dann sollen sie den modulo-op in "mod" umbenennen...

Ein Glück dass das demnächst deprecated wird.


jetzt doch, wo steht das?
bitte nicht...
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Sonntag 3. Mai 2009, 12:21

Dill hat geschrieben:nein. % bietet sich an, da er der C format-operator ist.
der war schon format - op, da bist du noch der blaßmusik hinterhergelaufen =) (!!)

wen verwirrt das denn bitte ernsthaft? niemanden...

Nicht jeder Python-Programmierer kommt von C. Also doch, einige.

wenn schon dann sollen sie den modulo-op in "mod" umbenennen...

Dill hat geschrieben:
Ein Glück dass das demnächst deprecated wird.


jetzt doch, wo steht das?
bitte nicht...

Nicht "jetzt doch", wir haben vorher gesagt dass es nicht entfernt wird. Zwischen deprecaten und entfernen gibt es ja durchaus einen Unterschied.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
DasIch
User
Beiträge: 2423
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Beitragvon DasIch » Sonntag 3. Mai 2009, 12:21

5.6.2 Old String Formatting Operations hat geschrieben:Note

The formatting operations described here are obsolete and may go away in future versions of Python. Use the new String Formatting in new code.
BlackJack

Beitragvon BlackJack » Sonntag 3. Mai 2009, 12:57

@hendrikS: Die neue Art zu formatieren hat einige Vorteile gegenüber der alten. Zum Beispiel kann man sich jetzt für eigene Objekte eine `__format__()`-Methode schreiben, die Optionen für die Formatierung kennt. Dass man das im Grunde nur für Zahlen detaillierter machen und sonst für alle anderen Objekte nur die Breite angeben konnte, war eine künstliche Einschränkung.

Und durch die Nummerierung der Platzhalter kann man die Reihenfolge unabhängig von der Reihenfolge der Argumente machen. Darüber freuen sich Übersetzer, weil nicht in allen Fällen eine gute, natürlich klingende Übersetzung gelingt, wenn die Reihenfolge festgelegt ist.
Benutzeravatar
Dill
User
Beiträge: 470
Registriert: Mittwoch 10. Januar 2007, 14:52
Wohnort: Köln

Beitragvon Dill » Sonntag 3. Mai 2009, 13:11

>Und durch die Nummerierung der Platzhalter kann man die Reihenfolge unabhängig von der Reihenfolge der Argumente machen.

das geht doch auch mit %, oder?
Benutzeravatar
helduel
User
Beiträge: 300
Registriert: Montag 23. Juli 2007, 14:05
Wohnort: Laupheim

Beitragvon helduel » Sonntag 3. Mai 2009, 13:30

Dill hat geschrieben:>Und durch die Nummerierung der Platzhalter kann man die Reihenfolge unabhängig von der Reihenfolge der Argumente machen.

das geht doch auch mit %, oder?


Wenn du ein dict verwendest, geht das. Bei einem tuple aber nicht.
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Beitragvon birkenfeld » Sonntag 3. Mai 2009, 16:52

BlackJack hat geschrieben:@hendrikS: Die neue Art zu formatieren hat einige Vorteile gegenüber der alten. Zum Beispiel kann man sich jetzt für eigene Objekte eine `__format__()`-Methode schreiben, die Optionen für die Formatierung kennt. Dass man das im Grunde nur für Zahlen detaillierter machen und sonst für alle anderen Objekte nur die Breite angeben konnte, war eine künstliche Einschränkung.

Was ich daran auch schlüssiger finde, ist die Verwendung mit Dictionaries als RHS; die meisten haben wohl schon mal ein "s" hinter "%(key)" vergessen. Außerdem ist das sehr verwirrende Problem mit ``"%s" % b`` gelöst, wenn "b" auf einmal auch ein Tupel sein kann.

Und durch die Nummerierung der Platzhalter kann man die Reihenfolge unabhängig von der Reihenfolge der Argumente machen. Darüber freuen sich Übersetzer, weil nicht in allen Fällen eine gute, natürlich klingende Übersetzung gelingt, wenn die Reihenfolge festgelegt ist.

Und das ist nicht zu unterschätzen. Nicht umsonst hat z.B. Qt seine eigene Syntax erfunden ("%1 %2").
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]