PythonAnfänger und sein erstes Prog - welches ned funzt

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
smodo
User
Beiträge: 49
Registriert: Dienstag 18. August 2009, 23:45

vielen lieben dank, sehr hilfreich deine antwort. :) jop wie im edit steht habe ich den q und Q fehler schon weg.
alles zu einer funktion mittels dem operator modul ist geial.. werd mich sofort daran setzten.
Ganz klar ich bin anfänger, hab aber auch gemerkt, das für so ein programm, meins viel zu viele zeilen hat.... :) "man kanns ja auch extrem schwer machen, so ein einfaches programm.
Auch das mit den namen für funktionen und variablen, werde ich in zukunft "schöner, lesbarer" gestallten und bennen.

Nochmals danke.

so erst ma kaffee holen. :)

edit:
also alle operatoren funktionen zusammen fassen natürlich, nicht total alles :)

edit2: Ich habe natürlich erst mal:
import operator
def(operator) gemacht um einen blick darauf zu werfen.

könntest du mir bitte ein kleines beispiel zum operator modul geben bitte ?
muss ehrlich sein, dachte es sei einfacher mit dem operator modul... :) also sprich operator.add oder operator.sub aber seh das nicht, oder überles ich es im kaffee-rausch? ;)
Der Zynismus ist meine Rüstung, der Sarkasmus mein Schwert und die Ironie mein Schild.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Hier mal ein kurzes Beispiel:

Code: Alles auswählen

>>> import operator
>>> def evaluate(left, op, right):
...     func = {"+":operator.add, "-":operator.sub, "*":operator.mul}[op]
...     print left, op, right, "=", func(left, right)
... 
>>> evaluate(2, "+", 5)                                                                 
2 + 5 = 7                                                                               
>>> evaluate(2, "-", 5)
2 - 5 = -3                                                                              
>>> evaluate(2, "*", 5)                                                                 
2 * 5 = 10 
Am besten merkst du dir, dass Funktionen nichts anderes sind als aufrufbare Objekte. So entspricht ``operator.add`` der Funktion:

Code: Alles auswählen

def add(x, y):
    return x+y
Das Leben ist wie ein Tennisball.
smodo
User
Beiträge: 49
Registriert: Dienstag 18. August 2009, 23:45

genial, vielen dank dir, sehr gut, aber ich werde mich evtl. erst morgen wieder richtig dran setzten, hab kopfweh, aber werde weiter berichten und posten. Brauche schliesslich auch sachliche kritik und tipps, wie eben z.b. von DIr.
Danke und einen schönen abend noch. :)

edith meint:
es lässt nicht los... ;) nur eine frage noch zu:

Code: Alles auswählen

func = {"+":operator.add, "-":operator.sub, "*":operator.mul}[op]
wieso diese klammern {} geht das auch in () ? weil in python3.x ist doch {1} {2} ein platzhalter oder nicht nur ?

und wiso am schluss die variable in [] klammern ?

evtl. ganz doofe fragen, aber ich habs noch nie gesehen, geschweige den sowas gelesen. hmm

boeh ich muss mehr lesen. ;)
Der Zynismus ist meine Rüstung, der Sarkasmus mein Schwert und die Ironie mein Schild.
BlackJack

@smodo: Vielleicht solltest Du vor solch komplexeren Programmen erst einmal die Grunddatentypen von Python kennenlernen. In diesem Fall den Typ `dict`.
Antworten