Nach Wind können nun bereits nach der Temperatur und der Windgeschwindigkeit filtern. Im folgenden möchten wir einen weiteren Filter implementieren um Städte nach ihrem Wetter-Symbol zu filtern.
Information
Diese Aufgabe geht davon aus, dass die Bonusaufgabe Wind bereits bearbeitet wurde. Du kannst die Wind Aufgabe natürlich auch weglassen. Passe dann unter Filter Anwenden einfach den Code von Teilaufgabe 6 an.
Nun implementieren wir die Klasse ConditionFilter, mit der Städte nach bestimmten Wetter-Symbolen gefiltert werden können.
ConditionFilter-Klasse wird ein Parameter condition übergeben, der das gesuchte Wetter-Symbol angibt (z. B. "🌫").evaluate: Diese Methode prüft, ob das Wetter-Symbol des übergebenen CityWeather-Objekts mit dem gewünschten Symbol übereinstimmt. True zurück.False zurück.Information
In dieser Aufgabe musst du deine Implementierung aus Wind anpassen.
In dieser Teilaufgabe integrierst du den neuen Filter und wendest diesen auf die Liste cities_weather an. Ziel ist es, die Liste so zu filtern, dass nur die Städte übrig bleiben, die den angegebenen Kriterien entsprechen. Diese Städte werden anschließend auf der Konsole ausgegeben. Die gesamte Logik wird in die main-Funktion eingebettet.
Zunächst legst du den Filter an, indem du eine Instanzen der Klasse ConditionFilter mit einem beliebigen Kriterium erstellst. Zum Beispiel könnte das Kriterium so aussehen: Ein bestimmtes Wetter-Symbol, beispielsweise "☀️" für sonniges Wetter.
Anschließend iterierst du über die Liste cities_weather, die die Wetterdaten der Städte enthält. Für jede Stadt überprüfst du, ob alle definierten Filterkriterien erfüllt sind. Wenn eine Stadt alle Filter erfüllt, wird sie der gefilterten Liste hinzugefügt.
Abschließend gibst du die Namen der Städte, die die Kriterien erfüllen, auf der Konsole aus.
Teste zuerst manuell, ob sich das Programm wie erwartet verhält.
Warnung
Für diese Aufgabe sind aktuell noch keine check50-Tests verfügbar. Wir bemühen uns diese baldmöglichst zur Verfügung zu stellen.
Führe den folgenden Befehl aus, um den Stil deines Codes mit style50 zu analysieren:
style50 main.py && style50 filter.py