Wie macht man das, dass...

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.
BlackJack

Mittwoch 29. November 2006, 01:41

XtraNine hat geschrieben:Funktioniert jetzt auch mit floats die nen exp haben. Naja ist zwar ungenau, aber dagegen kann ich ja nichts machen. Wüste auch nicht wie.
Das 'e' muss nicht an vierter Stelle stehen, der Exponent kann auch dreistellig sein.
[Edit: Code ins LodgeIt ausgelagert]
reverse_value('- abc')

Das Ergebnis finde ich etwas überraschend.
Was ist daran überraschend? aus "- abc" wird "cba -" 0o. Falls das eine Anspielung auf strings sein soll, die werden ja vorher abgefangen in Zeile 6, und in 7 returned.
Grmpf, hätte ich wohl einfach mal ausprobieren sollen. :oops:
Bei Fliesskommazahlen wird es noch verwirrender. Und warum muss das unbedingt *eine* Funktion sein, die alles kann?
Ja bei den floats sehe ich gerade das es ein wenig strange ist. Werde ich ändern(?). was meinst du mit ->> *eine* <<- warum diese Hervorhebung? Ich verstehe deine frage nicht? Ihr wart doch die jenigen die sagen "Duck-Typing" ist tool :) ich versuche gerade dem gerecht zu werden in dem ich eine einfache Funktion schreibe die einfach etwas umdreht. Dabei spielt es keine roll ob es eine Zahl ist, oder eine Zeichenkette, oder eine Decimal Zahl (complex lasse ich weg. mach mMn keine Sinn.). Ich würde gerne eine Begründung wissen weshalb du gerade diese Funktion überflüssig findest?
Es geht gar nicht darum das ich diese spezielle Funktion nicht sinnvoll finde, sondern die Art wie sie sehr viele verschiedene Dinge tut. "Einfach etwas umdrehen" sagt sich so leicht. Das würde als Docstring sicher nicht ausreichen um die Funktion zu beschreiben. Wenn Du anfängst die Vorbedingungen an die Objekte und die Ergebnisse (wohlgemerkt Mehrzahl!) zu beschreiben, fällt Dir vielleicht auf warum ich finde das das nicht eine Funktion ist, sondern im Grunde mehrere.
Was spricht dagegen sum(map(int, str(number))) als Funktion `quersumme` zu definieren?
Was sprich außer, dieses Beispiel, gegen die Funktion expand_value()? Braucht man das nicht das man 12985764 als [1,2,9,8,5,7,6,4] hat oder 1.234 als [1,'.',2,3,4].
Ich habe es noch nicht gebraucht. Während ich mir beim ersten noch Anwendungsfälle vorstellen könnte, fällt mir so gar keiner ein, warum ich *eine* Funktion bräuchte die *beides* macht.
Und was ist der reversed Wert von -12.34? Und versuch das mal ohne die Zeichenkettenrepräsentation zu beschreiben.
-> -43.21. Es wird einfach die Zahl umgedreht. Ich weiß nicht worauf du hinaus willst...
reverse_value = Drehe die zahl, zeichenkette von rechts nach links um.
Worauf ich hinaus will, ist dass Du mal beschreibst was bei dem Fliesskommabeispiel mit dem *Wert* gemacht wird, nicht mit einer Repräsentation des Wertes zu einer Basis als Zeichenkette. Was ist bei einer *Zahl* rechts oder links? Oder meinetwegen eine Beschreibung was mit dem Wert bei einer ganzen Zahl passiert, das ist vielleicht einfacher.
Gegen frage: Was ist [1, 2, 3, 4, 5] reversed(?)
Eine Liste hat Elemente auf die man zugreifen und die man in umgekehrter Reihenfolge anordnen kann. Das hat eine Zahl nicht. Ausserdem ist die Definition schon durch die Klasse `list()` vorgegeben:

Code: Alles auswählen

In [86]: a = [1, 2, 3, 4, 5]

In [87]: a.reverse()

In [88]: a
Out[88]: [5, 4, 3, 2, 1]
Das lässt nicht allzuviel Interpretationsspielraum.

Darauf basiert auch so ein bisschen die Erwartungshaltung an eine `reversed()`-Funktion (die es ja bereits gibt). Auch was das Ergebnis angeht. Die meisten Leute würden bei zweimaligem umdrehen von "etwas" zum Beispiel erwarten, das wieder der gleiche Anfangswert herauskommt.
Oder reversed von ``Viking()``?
was ist wiking?
Etwas das umgedreht werden kann. Oder auch nicht. Sag Du's mir. Welche Eigenschaften, und darum geht's bei duck typing, müsste ein Wikinger haben um umgedreht werden zu können.
bei verschiedenen Typen völlig unterschiedliche Bedeutungen hat und einen Anwendungsfall hätte ich auch gerne mal gesehen
Nö nicht wirklich. complexe lasse ich weg weil sinnfrei.
Und das sieht bei Zahlen anders aus?
Unterstützt werden Ganze zahlen, Decimal, float, str, unicode und alles was sich wie eine Zahl, Zeichenkette, oder eine Decimalzahl verhält. Bei allen dem wird das gleiche gemacht und zwar der Wert umgedreht. Mehr nicht...
Der Wert einer Zahl ist etwas ziemlich abstraktes und etwas "ganzes" im Gegensatz zu einer Zeichenkette die aus kleineren Einheiten zusammengesetzt ist.
sape
User
Beiträge: 1157
Registriert: Sonntag 3. September 2006, 12:52

Mittwoch 29. November 2006, 07:50

EDIT: Hat sich erledigt...Hab das alles gelöscht und arbeite an meinen Colorizer für mein prog weiter.

lg
Antworten