Seite 1 von 1

Funktion mit for Schleife

Verfasst: Freitag 20. Januar 2017, 18:56
von Bindl
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))

Re: Funktion mit for Schleife

Verfasst: Freitag 20. Januar 2017, 19:17
von /me
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.

Re: Funktion mit for Schleife

Verfasst: Freitag 20. Januar 2017, 20:01
von Bindl
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)

Re: Funktion mit for Schleife

Verfasst: Freitag 20. Januar 2017, 21:31
von 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.

Re: Funktion mit for Schleife

Verfasst: Samstag 21. Januar 2017, 10:44
von Sirius3
@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?