Lösungen Tutorial 2

No description has been provided for this image

Aufgabe¶

3 Punkte

Schreibe eine Funktion sum_up mit Eingabeparameter n, welcher die Zahlen von 1...n aufsummiert.

Nutze dafür einen for-loop.

Beispiel:

$$n = 5$$ $$sum\_up(5) \rightarrow 1 \rightarrow 1 + 2 = 3 \rightarrow 3 + 3 = 6 \rightarrow 6 + 4 = 10 \rightarrow 10 + 5 = 15$$

Hinweis: die Funktion range() zählt standardmässig von 0...n-1. Schauen Sie sich gerne dazu die offizielle Dokumentation an PEP 204.

In [2]:
def sum_up(n: int) -> int:
    count = 0
    for i in range(1,n+1):
        count += i
    return count

sum_up(5)
Out[2]:
15

Es gibt immer einen besseren weg.

Nach Gauß:

$$\sum_{k=1}^n k = 1 + 2 + 3 + \dots + n = \frac{n(n+1)}{2}$$

In [10]:
# nach Gauß
def sum_up(n: int) -> int:
    return int(n*(n+1)/2)

sum_up(5)
Out[10]:
15

Aufgabe¶

2 Punkte

Ihnen ist das Dictionary dict2 gegeben. Ändern Sie jeden Wert in dem Dictionary nach der Formel $f(x) = x^3-1$ mittels for-loop.

Tipp: Lassen Sie sich nicht von den Schlüsseln verwirren.

In [7]:
# Vorgegeben
dict2 = {"a": 56, 5: 12, "python": 9, 3.14: 1.141414}
dict2
Out[7]:
{'a': 56, 5: 12, 'python': 9, 3.14: 1.141414}
In [5]:
# Kurze Lösung mittels Dictionary Comprehension
dict2 = {key: value**3-1 for key, value in dict2.items()}
dict2
Out[5]:
{'a': 175615, 5: 1727, 'python': 728, 3.14: 0.48706374396146557}
In [8]:
# Lange Übersichtliche Lösung
for key, value in dict2.items():
    dict2[key] = dict2[key]**3 - 1
dict2
Out[8]:
{'a': 175615, 5: 1727, 'python': 728, 3.14: 0.48706374396146557}

Zusatzaufgabe¶

Keine Punkte

Erstellen Sie eine List mittels List Comprehension, welche die Zahlen 1...6 auf deren kubische Zahl 1...216 also der Funktion $f(x) = x^3$ abbildet.

In [11]:
cubics = [n**3 for n in range(1,7)]
cubics
Out[11]:
[1, 8, 27, 64, 125, 216]

Aufgabe¶

2 Punkte

Erstellen und Öffnen sie eine Datei testfile.txt mit der open Funktion, nutzen Sie dafür das with-Statement.

Schreiben Sie in diese Datei 100 mal den String "Python\n".

In [12]:
with open('testfile.txt', 'w') as f:
    for _ in range(100):
        f.write("Python\n")

Aufgabe¶

2 Punkte

Öffnen Sie die zuvor erstellte Datei testfile.txt im Lesemodus und weißen Sie den Inhalt der .readlines() Funktion der Variabeln lines zu.

In [14]:
lines = None # vorgegeben
with open('testfile.txt', 'r') as f:
    lines = f.readlines()

print("Anzahl der gelesenen Zeilen:", len(lines))
Anzahl der gelesenen Zeilen: 100

Aufgabe¶

3 Punkte

Importiere Python Built-In Library random und rufe zuerst aus dem Modul die Funktion seed auf mit dem Eingabewert 42, und weiße danach der Variable rand den Wert des Funktionsaufrufes von randint(1,100) zu.

In [15]:
rand = None # vorgegeben
import random
random.seed(42)
rand = random.randint(1,100)
rand
Out[15]:
82

Aufgabe¶

1 Punkt

Importieren Sie die Built-In Library datetime als dt.

In [16]:
import datetime as dt
print(dt.datetime.now())
2024-11-08 11:58:43.750641

Aufgabe¶

2 Punkte

Importieren Sie die Funktion sqrt aus dem Built-In Modul math. Berechnen Sie $\sqrt4$. Speichern Sie das Ergebnis in der variablen s4.

In [17]:
from math import sqrt
s4 = sqrt(4)
s4
Out[17]:
2.0