Abgabefrist: 13. Mai, 23:59

Art der Abgabe: Per Email an claudius@claudius-graebner.com

Die Hausaufgabe kann alleine oder in einer Gruppe bearbeitet werden. Ich benötige am Ende aber von jedem und jeder einzeln ein ausgefülltes Skript. Jeder bekommt auch eine individuelle Note!*

Bitte erstellt ein neues Python Skript und bennennt es folgendermaßen:

Nachname_Vorname_Matrikelnummer.py

Für mich wäre das also:

gräbner_claudius_27628.py

Dieses File schickt ihr mir dann bitte per Mail. Es ist eure 'Prüfungsleistung'.

Hinweis: Manche Emailprovider erlauben es nicht, Python files per Mail zu verschicken. Falls das bei euch der Fall ist, komprimiert das File einfach in einem zip und schickt es mir dann.

Aufgabenblock 1: Grundlagen

1.1. Kreiert eine Liste mit den Zahlen von 1 bis 10. Speichert diese Liste unter dem Namen 'l_1' und lasst Python die Liste ausgeben (mit Hilfe der print Funktion).

1.2. Extrahiert das das dritte Element aus dieser Liste, assoziiert es in einer Variable und gebt diese aus.

1.3. Extrahiert die letzten drei Elemente der Liste und gebt sie aus.

1.4. Ersetzt den ersten Wert der Liste mit der Zahl $99.9$.

1.5. Sortiert die Elemente der Liste in absteigender Reihenfolge. Gebt sie danach über den print Befehl aus.

1.6. Definiert die folgenden zwei Mengen:

\begin{align*} m_1 &= \{1, 4, 23, 95, 12\}\\ m_2 &= \{0, 23, 80, 96, 95\}\\ \end{align*}

1.7. Welche Elemente sind in $m_1$, aber nicht in $m_2$? Speichert diese Elemente in einer Liste und gebt diese aus.

1.8. Speichert die Schnittmenge von $m_1$ und $m_2$ über eine Variable und lasst Python diese Variable ausgeben.

1.9. Kreiert ein Wörterbuch mit den folgenden key-value Paaren:

  • "Hello" and "Hola"
  • 5 and 120.5
  • "bla" and [10, 80]

Ruft dann den zu 'bla' gehörenden value auf.

Aufgabenblock : Funktionen

2.1.Definiert eine Funktion, die folgende Gleichung berechnet:

$$f(x,y) = 10x+(1-y)^2$$

2.2. Ergänzt die Funktion, sodass sie überprüft ob als Inputs nur Zahlen eingegeben wurden (int or float). Wenn ein Input keine Zahl ist soll eine Fehlermeldung ausgegeben werden.

Aufgabenblock : Loops

3.1. Erstelle eine Liste mit den Wurzeln der Zahlen zwischen 5 und 15. Stelle die Lösung sowohl als for loop also auch als list comprehension dar.

3.2. Betrachte den folgenden for loop:

In [ ]:
l_1 = [0, 2, "Land", "!"]
l_2 = ["Lame", "La", 1, 3]
for i in l_1:
    print(i * l_2[i], end=" ")

Dieser loop funktioniert so nicht! Schreibe den loop so um, dass er nicht über die einzelnen Elemente von l_1, sondern über die Indices von l_1 iteriert.

Gewünschtes Ergebnis: "LaLa Land!!!

3.3. Wie oft muss man $1.1$ quadrieren bis das Ergebnis größer als 10 ist? Verwende einen while loop um diese Frage zu beantworten.

3.4. Definiert eine Funktion, welche die folgende Gleichung implementiert:

$$f(x) = \frac{1}{x} + \frac{1}{x^2}$$

Nehmt als Startwert $x_0=2$ und berechnet die Zeitreihe, welche durch diese Funktion für 7 Zeitschritte kreiert.

Erläuterung: Ihr könnt die von euch definierte Funktion in einen for loop einbauen, sodass sie in jedem Zeitschritt ihren Output aus dem Zeitschritt davor als Input erhält.