if/else in einer Definition.,

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
TW77
User
Beiträge: 3
Registriert: Mittwoch 7. Februar 2018, 16:46

Mittwoch 7. Februar 2018, 17:00

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
Benutzeravatar
kbr
User
Beiträge: 824
Registriert: Mittwoch 15. Oktober 2008, 09:27

Mittwoch 7. Februar 2018, 17:28

@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.
Benutzeravatar
noisefloor
User
Beiträge: 2359
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: Görgeshausen
Kontaktdaten:

Mittwoch 7. Februar 2018, 17:29

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...
TW77
User
Beiträge: 3
Registriert: Mittwoch 7. Februar 2018, 16:46

Donnerstag 8. Februar 2018, 13:22

Danke für die Hilfe!!! :D :P :D
Antworten