Seite 1 von 1

if/else in einer Definition.,

Verfasst: Mittwoch 7. Februar 2018, 17:00
von TW77
Gibt es eine Lösung für das Programm???

Code: Alles auswählen

x=0
def a():
    if x==10:
        print(x)
        x=x-10
    else:
        print(x)
        x=x+1
Ich will die Funktion a() immer wieder ausführen können und jedes mal soll plus eins gerechnet werden. Wenn die Zahl bei zehn ist soll minus zehn gerechnet werden.
Danke schonmal :D

Re: if/else in einer Definition.,

Verfasst: Mittwoch 7. Februar 2018, 17:28
von kbr
@TW77: fettdruck entspricht brüllen. Bitte nicht brüllen.

Eine möglich Lösung lautet:

Code: Alles auswählen

from itertools import cycle

a = cycle(range(11))
Und nun so oft

Code: Alles auswählen

next(a)
wie Du möchtest.

Re: if/else in einer Definition.,

Verfasst: Mittwoch 7. Februar 2018, 17:29
von noisefloor
Hallo,

natürlich gibt es eine Lösung. Als erstes solltest du deiner Funktion ein Argument mitgeben und die Funktion sollte einen Rückgabewert haben. Sich darauf zu verlassen, dass x im Namensraum, den die Funktion kennt, existiert, ist schlecht, weil fehleranfällig. Und Variablen im Namensraum implizit zu ändern ist schlechter Stil.

Wenn du die Funktion mehrfach ausführen willst -> ruf' sich mehr fach auf.

Gruß, noisefloor

P.S.: Es reicht, wenn du deine Beiträge in normaler Schriftgröße und schwarzer Schrift verfasst. Rot und extra groß ist überflüssig...

Re: if/else in einer Definition.,

Verfasst: Donnerstag 8. Februar 2018, 13:22
von TW77
Danke für die Hilfe!!! :D :P :D