'''
Aufgabe 1)
a) Erstelle eine Liste die den Text "Python" in getrennen Buchstaben enthält
(Ein Buchstabe als String je Eintrag)
b) Führe die Buchstaben der Liste innerhalb von einer Codezeile zu dem Wort Python als String zusammen (Tipp: via join())
'''
myList = ["P", "y", "t", "h", "o", "n"] # a)
myWord = "".join(myList) # b)
print(myWord)
'''
Aufgabe 2)
a) Erstelle eine String Liste mit 6 Hauptstädten
b) Füge programmatisch eine Stadt an den Anfang der Liste, ohne Werte aus der Liste zu löschen/zu überschreiben
c) Füge programmatisch eine Stadt an das Ende der Liste, ohne Werte aus der Liste zu löschen/zu überschreiben
d) Füge programmatisch eine Stadt bei Index 3 ein ohne Werte aus der Liste zu löschen/zu überschreiben
e) Ersetze programmatisch, die Stadt bei Index 5 durch eine andere statt (überschreiben)
f) Lösche programmatisch die letzten beiden städte aus der liste
g) Vertausche programmatisch die Position der letzten und ersten Hauptstadt in der Liste
h) Gebe programmatisch innerhalb von einer Expression die ersten drei Hauptstädte aus der Liste in der Konsole aus
i) Führe die Städte der Liste innerhalb von einer Codezeile programmatisch zu einem Text zusammen
und speichere das Ergebnis in der Variable cityText.
j) Passe die Logik aus i) so an , dass die Städte in cityText durch ", " getrent sind. (Komma und Leerzeichen)
k) Lösche programmatisch die Variable der Liste mit den Hauptstädten aus der Memory (so als hätte sie nie existiert)
'''
myCities = ["Berlin", "Paris", "Prag", "Wien", "Bern", "London"] # a)
myCities.insert(0, "Stockholm") # b)
myCities.append("Madrid") # c)
myCities.insert(3, "Lissabon") # d)
myCities[5] = "Budapest" # e)
#myCities = myCities[:-2] # f) Liste von Anfang bis Drittletzte Werte behalten
del myCities[-2:] # f) Alternative: Letzte beiden Werte entfernen
myCities[0], myCities[-1] = myCities[-1], myCities[0] # g) Anmerkung: Man kann meherer Einzelnwerte in einer Zeile zuweisen (via Komma Trennung (Anzhal der zuweisungen muss übereinstimmen))
print(myCities[0:3]) # h)
cityText = "".join(myCities) # i)
cityText = ", ".join(myCities) # j)
del myCities # k)
print(cityText)
# print(myCities) # deleted ok: => NameError: name 'myCities' is not defined
'''
Aufgabe 3:
a) Erstelle eine String Liste mit Zahlen von 1 bis 8
b) Erstelle eine Kopie dieser Liste und kehre in der selben Codezeile die Reihenfolge der Listeinträge für die neue Liste um.
c) Kehre nun die Reihenfolge der neuen Liste noch einmal um, aber benutze diesmal ein anderes Verfahren als in b).
d) Gebe innerhalb von einer Codezeile nur die geraden Zahlen der Liste in der Konsole aus,
ohne die Liste (Cache) selbst zu manipulieren.
e) Gebe innerhalb von einer Codezeile nur die ungeraden Zahlen der Liste in der Konsole aus,
ohne die Liste (Cache) selbst zu manipulieren.
f) Leere die Liste innerhalb von einer Codezeile
g) Füge der leeren Liste den Wert 10 und 11 hinzu.
h) Ersetze den Wert 11 innerhalb von einer Codezeile durch den Wert 101
i) Lösche die gesamte Liste aus dem Cache
j) VERSUCHE die gelöschte Liste in der Konsole auszugeben, ohne das der Code crasht.
k) Wenn der Code crasht, soll der Error in der Konsole ausgeben werden.
'''
myList = ['1', '2', '3', '4', '5', '6', '7', '8'] # a)
myList = [str(i) for i in range(1, 9)] # a) Alternativ
revList = myList[::-1] # b)
revList.reverse() # c)
# revList = sorted(revList, reverse=False) # c) Alternativ ... geht auch .revList.sort()
print(revList[1::2]) # d)
print(revList[::2]) # e)
del revList[:] # f)
revList += [10, 11] # g)
revList[1] = 101 # h)
del revList # i)
try: print(revList) # j)
except Exception as e: print(e) # k)
# Aufgabe 4)
# a) Erstelle einen While Loop und beende die Iteration Kopfgesteuert bei der 20ten Iteration.
i = 0
while i < 20:
print(i)
i += 1
# b) Erstelle einen While Loop mit der Bedingung True, und beende die Iteration Fußgesteuert bei der 20ten Iteration.
i = 0
while True:
print(i)
i += 1
if i >= 20:
break
# Aufgabe 5 + 6 besprchen wir später ...