Frage zur Return Anweisung ....

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.
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Beitragvon sma » Sonntag 15. Juni 2008, 10:39

Sagt, mal: selbst, wenn man "ergbnis" richtig schreiben würde, die ursprüngliche Funktion ist doch nur eine komplizierte Variante von

Code: Alles auswählen

def fak(n): return 1

Will sagen: Der Algorithmus ist falsch abgeschrieben.

Stefan
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Beitragvon HWK » Sonntag 15. Juni 2008, 12:02

@sma: Ja, genau!

birkenfeld hat geschrieben:Sehr gut. Nächste Aufgabe: Erweiterung auf n! = Γ(n+1) :D

Code: Alles auswählen

from scipy.special import gamma
def fac(n):
   return gamma(n + 1)
:wink:
MfG
HWK
Benutzeravatar
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Beitragvon mitsuhiko » Sonntag 15. Juni 2008, 14:30

audax hat geschrieben:Aber ich hab grad nur Python2.4 zur Hand und das kann das inline if-else nicht :(


Geht trotzdem :-)

Code: Alles auswählen

from operator import mul
fak = lambda n: (n == 0 and (1,) or reduce(mul, xrange(1, n + 1)))[0]
TUFKAB – the user formerly known as blackbird
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 15. Juni 2008, 15:21

Das Tupel und [0] sind aber falsch da. :)
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
Benutzeravatar
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Beitragvon mitsuhiko » Sonntag 15. Juni 2008, 15:24

Richtig. Fixed :-)

Code: Alles auswählen

from operator import mul
fak = lambda n: (n == 0 and (1,) or (reduce(mul, xrange(1, n + 1)),))[0]
TUFKAB – the user formerly known as blackbird
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 15. Juni 2008, 15:32

Ich versteh immer noch nicht wozu du da ein Tupel brauchst...
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
Benutzeravatar
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Beitragvon mitsuhiko » Sonntag 15. Juni 2008, 15:40

Weil ich blöd bin. Hab da ein 1 für eine 0 gedacht :oops:
TUFKAB – the user formerly known as blackbird
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 15. Juni 2008, 15:46

In dem Fall hätte ich

Code: Alles auswählen

fak = lambda n: n > 0 and reduce(mul, xrange(1, n + 1))

vorgeschlagen, aber das fällt wohl unter Cheating :)
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder