Seite 2 von 2

Re: c = (a) + (b) klappt bei mir ausserhalb, jedoch nicht innerhalb von Schleife

Verfasst: Donnerstag 16. April 2020, 23:42
von Susann.M.23
Sirius3 hat geschrieben: Donnerstag 16. April 2020, 22:56 Naja, Du hast hier ein Flag `endlos` das True sein muß, wenn es endlos sein soll.
Das bedeutet was ?

Wenn ich

Code: Alles auswählen

schleifendurchlaufanzahl = endlos

if endlos:
    iterator = itertools.count()
else:
    iterator = range(schleifendurchlaufanzahl)
for i in iterator:
    print(i)

eingebe, bekomme ich folgende Ausgabe:

Code: Alles auswählen

Traceback (most recent call last):
  File "input4.py", line 4, in <module>
    schleifendurchlaufanzahl = endlos
NameError: name 'endlos' is not defined

Am einfachsten wäre es vermutlich, wenn es eine Zeichen für "endlos" im Python geben würde, welches man bei folgendem, bei Bedarf an Stelle der 5 an geben kann:

Code: Alles auswählen

schleifendurchlaufanzahl = 5

x = 1
while x <= schleifendurchlaufanzahl:
    print(x)
    x = x + 1

Re: c = (a) + (b) klappt bei mir ausserhalb, jedoch nicht innerhalb von Schleife

Verfasst: Freitag 17. April 2020, 09:28
von __deets__
endlos muss eine Flagge sein, und True. Und dann geht das da oben zB so:

Code: Alles auswählen

endlos = True
schleifendurchlaufanzahl = 5

x = 1
while endlos or x <= schleifendurchlaufanzahl:
    print(x)
    x = x + 10
Das geht natuerlich schoener mit itertools:

Code: Alles auswählen

from itertools import count

endlos = True # oder False
schleifendurchlaufanzahl = 5

counter = count() if endlos else range(schleifendurchlaufanzahl)

for i in counter:
     x = i * 10
     ...
Python braucht da also kein Zeichen - man muss sich das eben programmieren.