Erforderliche Funktion: stranger_binger
Funktionsweise:
Schreiben Sie eine Funktion stranger_binger, welche drei Parameter übernimmt. Der erste Parameter seasons ist ein Dictionary, das beliebig viele Staffel-Dictionaries und in diesen wiederum die jeweiligen Episoden-Informationen als Dictionary enthält. Jedes Episoden-Dictionary enthält Informationen über den Namen der Episode (episode_name als key) und ihre Spieldauer (duration als key) in Minuten.
Die Staffeln und jeweiligen Episoden werden im seasons-Dictionary mit Ganzzahlen-keys in aufsteigender Reihenfolge von 1 bis \(n\) (=so viele es gibt) identifiziert.
Das Dictionary ist also wie folgt aufgebaut:
Code: Alles auswählen
{
1: {
1: {
"name": "<name_1_1>",
"duration": <duration_1_1>
},
2: {
"name": "<name_1_2>",
"duration": <duration_1_2>
},
...
<m>: {
"name": "<name_1_m>",
"duration": <duration_1_m>
}
},
...
<n>: {
1: {
"name": "<name_n_1>",
"duration": <duration_n_1>
},
...
}
}
Der zweite Parameter der Funktion (start) enthält ein Tuple mit zwei Zahlen (ab hier n und m genannt). Die erste Zahl repräsentiert die Nummer der Staffel (n) und die zweite Zahl die Nummer der Episode (m) mit der Sie in dieser Binge-Session weitermachen möchten. Mit dem dritten Parameter binge_time geben Sie an, wie viel Zeit (in Minuten) sie maximal für Ihre Binge-watching-Session zur Verfügung haben.
Sie beginnen somit mit der in start angegebenen Staffel (n) und Episode (m) und sehen sich die Episoden in aufeinanderfolgender Reihenfolge bis zum Erschöpfen ihrer Zeit (binge_time) an. Nach jeder finalisierten Episode soll die noch verbleibende Zeit ausgegeben werden:
Watched Season <season_number> Episode <episode_number>: "<episode_name>", <time_left> minutes left to binge!
Falls das Schauen einer Episode ihre Zeit (binge_time) erschöpfen würde, printen Sie:
No more full episodes today! Only <time_left> minutes are left to watch, but Season <season_number> Episode <episode_number>: "<episode_name>" has <episode_duration> minutes.
und hören auf zu schauen.
Geben Sie zusätzlich die Info, wie viele Episoden Sie heute gesehen haben, in folgenden Format aus:
<num_episodes_watched> episode(s) watched today.
Wenn Sie die Serie nicht zu Ende sehen konnten, weil keine Zeit mehr blieb, geben Sie per return zurück, bei welcher Staffel und Episode Sie aufgehört haben. Diese Information soll als Tupel (<Staffelnummer>, <Episodennummer>) zurückgegeben werden. Wenn Sie alle Staffeln und Episoden sehen konnten, geben Sie stattdessen None zurück.
Beispiel:
Ein seasons-dictionary
Code: Alles auswählen
{
1: {
1: {
"name": "The Vanishing of Will Byers",
"duration": 49},
2: {
"name": "The Weirdo on Maple Street",
"duration": 56}
},
2: {
1: {
"name": "MADMAX",
"duration": 48},
2: {
"name": "Trick or Treat, Freak",
"duration": 57},
3: {
"name": "The Pollywog",
"duration": 51}
},
}
mit start-Episode (1, 2) und einer binge_time von 142 Minuten ergibt die Ausgabe
Watched Season 1 Episode 2: "The Weirdo on Maple Street", 86 minutes left to binge!
Watched Season 2 Episode 1: "MADMAX", 38 minutes left to binge!
No more full episodes today! Only 38 minutes are left to watch, but Season 2 Episode 2: "Trick or Treat, Freak" has 57 minutes.
2 episode(s) watched today.
und gibt (2, 2) zurück.