Fakultät berechnen

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
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Und wenn 's spezieller sein darf, geht es auch noch kürzer:

Code: Alles auswählen

print "720"
:twisted:
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
BlackJack

@Hyperion: Das Leerzeichen zwischen ``print`` und der Zeichenkette könnte man noch einsparen. :-)
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

BlackJack hat geschrieben:@Hyperion: Das Leerzeichen zwischen ``print`` und der Zeichenkette könnte man noch einsparen. :-)
Hatte kein Python 2 da, um das zu testen ;-) Aber danke für den Hinweis! :mrgreen:
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Üpsilon
User
Beiträge: 222
Registriert: Samstag 15. September 2012, 19:23

@Hyperion: afaik kann man bei deinem spezialfall auch die anführungszeichen weglassen :mrgreen:
PS: Die angebotene Summe ist beachtlich.
hwm
User
Beiträge: 39
Registriert: Mittwoch 20. April 2005, 23:33

Man könnte statt der beiden Gänsefüßchen auch das einfache Hochkomma nehmen, das würde noch mal jeweils 1/2 Zeichen einsparen :D
MortalWombat
User
Beiträge: 19
Registriert: Sonntag 1. Dezember 2019, 15:02

Frank aka Ch3ck3r hat geschrieben: Mittwoch 14. November 2007, 19:19 also ich würde es so lösen xD

Code: Alles auswählen

def fakult(n):
    #Für Re- hat die Fakultät keine Wertemenge
    if n < 0:
        raise ValueError
    #Nach Definition ist 0! = 1
    if n == 0:
        return 1
    #Ansonten wird hier die Fakultät ausgerechnet
    else:
        save = 1
        for i in range(2,n+1):
            save *= i
        return save
Diese Lösung habe ich schon ziemlich oft gefunden. In Büchern und Skripten wird es meist so gemacht. Weshalb überschreibe ich nicht einfach die Variable n derart, daß ich n zurückgeben kann?

Code: Alles auswählen

def fakult(n):
    #Für Re- hat die Fakultät keine Wertemenge
    if n < 0:
        raise ValueError
    #Nach Definition ist 0! = 1
    if n == 0:
        return 1
    #Ansonten wird hier die Fakultät ausgerechnet
    else:
        for i in range(1,n):
            n *= i
        return n
Benutzeravatar
__blackjack__
User
Beiträge: 13103
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@MortalWombat: Weil das verirrend ist den gleichen Namen für verschiedene Dinge im gleichen Namensraum zu verwenden.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
MortalWombat
User
Beiträge: 19
Registriert: Sonntag 1. Dezember 2019, 15:02

Hm, sowas in der Art habe ich mir schon gedacht, danke.
Antworten