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
,semester
undmat_nr
speichern, 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 ausasdict
aufgerufen mit dem Beispielstudenten der Variablenstud
zu.
+Die Aufgabe wird mit 0 Punkten bewertet, wenn
+Student
keine 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')] ++