Lösungen Extended Applications¶
+Aufgabe¶
3 Punkte
+Schreibe einen Generator square_count mit einem Eingabeparameter n, welcher die Quadratzahlen von $1\dots n^2$ ausgibt.
Die Aufgabe gibt 0 Punkte, wenn die Funktion square_count kein Generator ist!
Hinweis: Bei Eingabe von 5 soll die Ausgabe 1 4 9 16 sein.
def square_count(n: int) -> int:
+ for i in range(1, n):
+ yield i*i
+
+for n in range(2, 7):
+ print(f"Square Numbers from 0 to {n-1}:", *square_count(n))
+Square Numbers from 0 to 1: 1 +Square Numbers from 0 to 2: 1 4 +Square Numbers from 0 to 3: 1 4 9 +Square Numbers from 0 to 4: 1 4 9 16 +Square Numbers from 0 to 5: 1 4 9 16 25 ++
Aufgabe¶
3 Punkte
+Schreibe einen Generator naturals, welcher mit jedem Aufruf die nächste natürliche Zahl ausgibt. (Angefangen mit 1)
-
+
- Es sind keine Eingabeparameter notwendig. +
- Ist die Funktion kein generator, wird diese Aufgabe mit 0 Punkten bewertet +
Hinweis: Orientiere dich an dem Beispiel faktoriel_gen
import types
+def naturals() -> int:
+ curr = 1
+ while 1:
+ yield curr
+ curr += 1
+
+gen: types.GeneratorType = naturals()
+for i in range(1, 10):
+ number: int = next(gen)
+ print(number, end=', ')
+1, 2, 3, 4, 5, 6, 7, 8, 9,+
Aufgabe¶
6 Punkte
+Schreiben Sie eine Dataclass Student
-
+
Die dataclass soll die Werte
+vorname,nachname,semesterundmat_nrspeichern, vergebe hierzu selber den !!geeigneten!! Datentypen. Mache dir dazu Gedanken ob es Sinnvoll beispielweise die Semesteranzahl als Float zu speichern.
+importiere aus dem dataclasses modul die Funktion
+asdict, erstelle ein Objekt mit den Werten aus dem Beispielstundent, weiße den rückgabewert ausasdictaufgerufen mit dem Beispielstudenten der Variablenstudzu.
+Die Aufgabe wird mit 0 Punkten bewertet, wenn
+Studentkeine dataclass ist!
+Hat einer der Attribute keinen geeigneten Datentypen, führt dies nicht zu Punktabzug bei zwei oder mehr schon.
+
+
Beispielstudent:
+| Attribut | +Wert | +
|---|---|
| vorname | +Martin | +
| nachname | +Le | +
| mat_nr | +520420 | +
| semester | +5 | +
from dataclasses import dataclass, asdict
+
+@dataclass
+class Student:
+ vorname: str
+ nachname: str
+ mat_nr: int
+ semester: int
+
+student = Student(
+ vorname='Martin',
+ nachname='Le',
+ mat_nr=520420,
+ semester=5)
+
+stud = asdict(student)
+
+from pprint import pprint
+pprint(stud, width=1)
+{'mat_nr': 520420,
+ 'nachname': 'Le',
+ 'semester': 5,
+ 'vorname': 'Martin'}
+
+Aufgabe¶
6 Punkte
+Gegeben sind zwei Listen colorn & colorv_hex, welche zueinander Index Sortiert sind.
Schreiben nun eine Dataclass Color mit den Attributen name & value und vergebe geeignete Type Hints.
Erstelle danach eine Liste, welche die Werte aus colorn & colorv_hex in die Dataclass Color umwandeln, und speicher die Liste in der variablen colors.
colorn = ['RED', 'GREEN', 'BLUE', 'YELLOW', 'PURPLE']
+colorv_hex = ['#FF0000', '#00FF00', '#0000FF', '#FFFF00', '#FF00FF']
+colors = None
+
+@dataclass
+class Color:
+ name: str
+ value: str
+
+colors = [Color(n, w) for n, w in zip(colorn, colorv_hex)]
+
+pprint(colors)
+[Color(name='RED', value='#FF0000'), + Color(name='GREEN', value='#00FF00'), + Color(name='BLUE', value='#0000FF'), + Color(name='YELLOW', value='#FFFF00'), + Color(name='PURPLE', value='#FF00FF')] ++
+