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

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.
Susann.M.23
User
Beiträge: 44
Registriert: Montag 30. März 2020, 13: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
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

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.
Antworten