Funktion mit for Schleife

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
Bindl
User
Beiträge: 70
Registriert: Donnerstag 27. Oktober 2016, 11:48

Hi,
wieso kommt auch noch None am Ende mit raus?

Code: Alles auswählen

def zahlen_dreieck(b):
    for i in range(b,0,-1):
        print(i*"{0} ".format(i))
a=int(input("Startzahl: "))
print(zahlen_dreieck(a))
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Jede Funktion liefert einen Rückgabewert. Wenn dieser nicht explizit angegeben wird ist er None. Und da du print(zahlen_dreieck(a)) ausführst wird der Rückgabewert des Aufrufs von zahlen_dreieck natürlich ausgegeben. Du möchtest vielleicht das print weglassen.
Bindl
User
Beiträge: 70
Registriert: Donnerstag 27. Oktober 2016, 11:48

Hi,
danke.
Klar ich habe das return vergessen.
So gehts:

Code: Alles auswählen

def zahlen_dreieck(b):
    for i in range(b,0,-1):
        c = print(i*"{0} ".format(i))
    return c
a=int(input("Startzahl: "))
zahlen_dreieck(a)
BlackJack

@Bindl: Ähm, das macht so überhaupt gar keinen Sinn das ``return``. Und es kann bei einem bestimmten, IMHO legalen, Wert für `b` sogar zu einem `NameError` führen.
Sirius3
User
Beiträge: 17738
Registriert: Sonntag 21. Oktober 2012, 17:20

@Bindl: weißt Du, was der Rückgabewert von »print« ist? Welcher Rückgabewert macht für Deine Funktion Sinn? Was machst Du mit dem Rückgabewert Deiner Funktion?
Antworten