Python-3

'''
AUFGABE 1)
a) Deklariere eine Liste mit dem Variablennamen myList und Werten von 0 bis 4
b) Gebe die Liste in der Konsole aus
c) Füge mit der richtigen Methode an das Ende der Liste die Zahl 5 hinzu
d) Entferne mit der richtigen Methode den Wert bei Index 0 aus der Liste
e) Programmiere eine Schleife, welche die Liste durchläuft, nenne die Schleifenvariable num,
und gebe die Schleifenvariable in jedem Schleifenschritt in der Konsole aus.
'''

myList = [0,1,2,3,4] # a)
print(myList) # b)
myList.append(5) # c)
myList.pop(0) # d)

for num in myList: # e)
print(num)


# - - - - - - - - - - - - - - - - - - - - - - - - - - - -


'''
AUFGABE 2)
a) Deklariere eine Liste mit dem Variablennamen myList und Werten von 1 bis 10
b) Deklariere eine Variable namens summe und weise ihr den Wert 0 zu
c) Programmiere eine Schleife, welche die Liste durchläuft,
und addiere die Schleifenvariable in jedem Schleifenschritt auf die summe variable (kumulieren)
d) Erstelle eine Pseudo-Kopie (Pointer) von der myList und nenne sie aliasList
e) Füge der Alias Liste bei Index 2 den Wert 100 hinzu (ohne Werte zu ersetzen)
f) Gebe die myList und die aliasList in der Konsole aus und schaue Dir die Ergebnisse an
g) Erstelle eine echte Kopie der myList in einer neuen Liste namens newList
h) Ersetze in der newList den Wert bei Index 0 durch den Wert 1000
i) Gebe die myList und aliasList und newList in der Konsole aus und vergleiche die Ergebnisse
j) Erstelle eine neue Liste namens partialList und weise ihr die ersten 3 Werte aus der myList zu.
'''

myList = [1,2,3,4,5,6,7,8,9,10] # a)

summe = 0 # b)

for loopvar in myList: # c)
summe += loopvar
print(summe) ### so wir in jedem Schleifenschritt der jeweils aktielle Wert der summen var ausgegeben
print(summe) ### hier ist print() nicht mehr teil der schleife => ergebnis der summe var nach schleife wird ausgegeb
### danach können wir auch nichts mehr in die Schleife reinschriebn
### => erst links-einrückung nach indented block, beendet den block

aliasList = myList # d)
aliasList.insert(2, 100) # e)

print(myList); print(aliasList) # f)

newList = myList[:] # g)
# newList = myList.copy() # g) alternativ
newList[0] = 1000 # h)
print(myList); print(aliasList); print(newList) # i)

partialList = myList[:3] # j)
print(partialList)

# - - - - - - - - - - - - - - - - - - - - - - - - - - - -

# ACHTUNG
# sum = 0 # so würden wir eine built-in function von python überschreiben
# danach könnten wir sie nicht mehr benutzen
# Was macht sum?? eine summe bilden
# zB so
print(sum(myList))

# - - - - - - - - - - - - - - - - - - - - - - - - - - - -

'''
AUFGABE 3)
a) Deklariere eine Liste mit dem Variablennamen myList und den Werten: 0, 2, 4, 6, 8, 10
b) Prüfe in jedem Schleifenschritt ob die Schleifenvariable größer als 4 ist.
b1) Ist dies der Fall, dann gebe die Schleifenvariable in der Konsole aus.
b2) Ist dies nicht der Fall, dann gebe "value not greater 4" in der Konsole aus.
'''

myList = [0,2,4,6,8,10] # a)

for item in myList:
if item > 4: # b)
print(item) # b1)
else:
print("value not greater 4") # b2)


# - - - - - - - - - - - - - - - - - - - - - - - - - - - -

'''
AUFGABE 4)
a) Lasse den User sein Geburtsjahr in der Konsole eingeben
und speichere die Eingabe in einer Variable namens birthYear
b) Wandele die Usereingabe in eine Zahl um
c) Subtrahiere das Geburtsjahr des Users von dem laufenden Jahr 2025
und speichere das Ergebnis in einer Variablen namens caAge
d) Gebe den Text "Dein Alter ist ca." und die Variable caAge in der Konsole aus.
e) Stelle sicher dass der Code nicht crasht, egal was der User eingibt
f) Bonus: Versuche mit if und else eine Logik zu schreiben, die prüft ob das Alter des Users realistisch ist.
Ist das Alter unrealistisch, dann gebe in der Konsole aus "Es ist unrealistisch, dass Du ca." caAge "Jahre alt bist".
'''

try: # e)
birthYear = int(input("Enter your year of birth please :-)")) # a, b)
caAge = 2025 - birthYear # c)

if caAge > 6 and caAge < 100: # f)
print("Dein alter ist", caAge) # d)
else: # f)
print("Es ist unrealistisch, dass Du ca.", caAge, "Jahre alt bist")

except Exception as e: # e)
print(e) # e)


# - - - - - - - - - - - - - - - - - - - - - - - - - - - -

# Es gibt natürlich auch möglichkeiten mit genauen jahres, monatgen, tagen, h,m, s, ms zu arbeiten :-)
# import time
# import datetime

# - - - - - - - - - - - - - - - - - - - - - - - - - - - -

# Alternative

birthYear = input("Enter your year of birth please :-)")
try:
birthYear = int(birthYear)
caAge = 2025 - birthYear

if caAge < 6 or caAge > 100:
print("Es ist unrealistisch, dass Du ca.", caAge, "Jahre alt bist")
else:
print("Dein alter ist", caAge)

except Exception as e:
print("please type a valid integer")
print(e)


# - - - - - - - - - - - - - - - - - - - - - - - - - - - -


# Alternative

birthYear = input("Enter your year of birth please :-)")
try:
birthYear = int(birthYear)
caAge = 2025 - birthYear

if caAge > 6 and caAge < 100:
print("Dein alter ist", caAge)
else:
print("Es ist unrealistisch, dass Du ca.", caAge, "Jahre alt bist")

except Exception as e:
print("please type a valid integer")
print(e)

# - - - - - - - - - - - - - - - - - - - - - - - - - - - -

# Wir verwenden hier bei Usereingaben lediglich command lines tools (cli)
# Sowas nutzen meistens nur user die developer sind

# Aber für den non-dev user einer website oder app,
# hat man ja eig eine GUI (Graphical User Interface)
# Dort kann man dann auch Dinge wie Realtime Inputdata Checks vornehmen