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

if/else in einer Definition.,

Beitragvon TW77 » Mittwoch 7. Februar 2018, 17:00

Gibt es eine Lösung für das Programm???
  1. x=0
  2. def a():
  3.     if x==10:
  4.         print(x)
  5.         x=x-10
  6.     else:
  7.         print(x)
  8.         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: 780
Registriert: Mittwoch 15. Oktober 2008, 09:27
Wohnort: Düsseldorf

Re: if/else in einer Definition.,

Beitragvon kbr » Mittwoch 7. Februar 2018, 17:28

@TW77: fettdruck entspricht brüllen. Bitte nicht brüllen.

Eine möglich Lösung lautet:
  1. from itertools import cycle
  2.  
  3. a = cycle(range(11))

Und nun so oft
  1. next(a)

wie Du möchtest.
Benutzeravatar
noisefloor
User
Beiträge: 2244
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: Görgeshausen
Kontaktdaten:

Re: if/else in einer Definition.,

Beitragvon noisefloor » 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

Re: if/else in einer Definition.,

Beitragvon TW77 » Donnerstag 8. Februar 2018, 13:22

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

Wer ist online?

Mitglieder in diesem Forum: brainstir