@CrytoChris: Brechen wir an dieser Stelle die sinnlose Diskussion ab, mit welchem Ausdruck man am Besten einen Index umstellt und widmen wir uns der Frage, welche Möglichkeiten wir haben, und welche am Besten in Frage kommt.
Die einfachste Möglichkeit ist das Flag:
Code: Alles auswählen
if flag:
print ("Text 2")
else:
print ("Text 1")
# oder
print("Text 2" if flag else "Text 1")
Wenn es um eine einfache Sache geht, ist nichts einzuwenden. Doch wenn das Flag an mehreren Stellen abzufragen ist, wenn nicht nur der Text, sondern auch anderes geändert behandelt werden soll, und wenn es auch noch andere Flags gibt, dann wird der Code leicht ein unübersichtlicher Verhau mit jeder Menge von if else Abfragen auf Flags, die evtl. dann auch noch tief verschachtelt sind.
Eine bessere Möglichkeit, wäre dann eine Verwendung eines Indexes, weil dann die if else Logik überflüssig wird:
Noch besser ist es, auch auf den Index zu verzichten, sondern gleich den geänderten Text zu haben:
Wenn sich nicht nur der Text ändern soll, sondern auch noch Anderes, empfiehlt sich, ein geändertes Objekt zu verwenden:
Beispiel für print(my_text):
Code: Alles auswählen
import time
max_breite = 10
breite = 0
my_text = "Text 1"
while True:
#draw.rectangle(hoehe, breite)
time.sleep(1)
breite += 5
if breite >= max_breite:
my_text = "Text 1" if my_text == "Text 2" else "Text 2"
breite = 0
print(my_text)
Beispiel für print(my_object.text):
Code: Alles auswählen
import time
class My_Object():
def __init__(self,next_object = None,text=''):
self.next_object = self if next_object == None else next_object
self.text = text
# evtl. weitere Eigenschaften
my_object2 = My_Object(None,"Text 2")
my_object1 = My_Object(my_object2,"Text 1")
my_object2.next_object = my_object1
max_breite = 10
breite = 0
my_object = my_object1
while True:
#draw.rectangle(hoehe, breite)
time.sleep(1)
breite += 5
if breite >= max_breite:
my_object = my_object.next_object
breite = 0
print(my_object.text)