Ich habe folgendes Programm:
Code: Alles auswählen
from datetime import datetime
import locale
locale.setlocale(locale.LC_ALL, "de_DE")
print("Bitte geben Sie die Namen oder Bezeichnungen der Mitglieder ein, die zum Treffen kommen sollen")
mitglieder = [name.strip() for name in input().split(",")]
print("Bitte geben Sie die mögliche Termine ein")
termine = [[datetime.strptime(datum.strip(),"%d.%m.%Y"),0] for datum in input().split(",")]
for mitglied in mitglieder:
for termin in termine:
termin[1] += int(input(f"Wie gut passt {termin[0]:%A, der %d.%m.%Y} für {mitglied}? (0 = passt gut, 1= passt mäßig, 2 = passt schlecht oder beispielsweise in Noten): "))
print()
print("Durchschnitt pro Termin:")
for termin in termine:
print(f"{termin[0]:%A, der %d.%m.%Y}: {termin[1]/len(mitglieder):.2f}")
bester_termin = min(termine, key=lambda termin:termin[1])
print()
print(f"Am besten passt {bester_termin[0]:%A, der %d.%m.%Y}.")
Code: Alles auswählen
Bitte geben Sie die Namen oder Bezeichnungen der Mitglieder ein, die zum Treffen kommen sollen
Jan, Paul, Peter
Bitte geben Sie die mögliche Termine ein
11.10.2021, 12.10.2021
Wie gut passt Montag, der 11.10.2021 für Jan? (0 = passt gut, 1= passt mäßig, 2 = passt schlecht oder beispielsweise in Noten): 3
Wie gut passt Dienstag, der 12.10.2021 für Jan? (0 = passt gut, 1= passt mäßig, 2 = passt schlecht oder beispielsweise in Noten): 1
Wie gut passt Montag, der 11.10.2021 für Paul? (0 = passt gut, 1= passt mäßig, 2 = passt schlecht oder beispielsweise in Noten): 1
Wie gut passt Dienstag, der 12.10.2021 für Paul? (0 = passt gut, 1= passt mäßig, 2 = passt schlecht oder beispielsweise in Noten): 2
Wie gut passt Montag, der 11.10.2021 für Peter? (0 = passt gut, 1= passt mäßig, 2 = passt schlecht oder beispielsweise in Noten): 1
Wie gut passt Dienstag, der 12.10.2021 für Peter? (0 = passt gut, 1= passt mäßig, 2 = passt schlecht oder beispielsweise in Noten): 4
Durchschnitt pro Termin:
Montag, der 11.10.2021: 1.67
Dienstag, der 12.10.2021: 2.33
Am besten passt Montag, der 11.10.2021.
Nun, da der passendste Termin ausgewählt wurde, möchte ich zusätzlich, dass das Programm erkennt, dass ein Wechsel der Bewertung möglich ist, in diesem Beispiel bei Jan.
Wenn man nun bei Jan die Wertung (hier die 3 mit der 1) wechselt, so wäre der 1. Termin mit einem Schnitt von 1.00 der best-möglichste.
Wunschprint wäre hier also noch:
"Ein Wechsel ist bei Jan möglich, der neue Durchschnitt wäre: 1.00"
Anmerkung: Das müsste allgemein anwendbar sein, da man ja beliebig viele Termine, sowie Personen eintragen kann.
Meine Ideen:
Man müsste also Bewertungen jeder Person in eine Liste packen richtig? In diesem Beispiel: bewertung_person1 = [3, 1] usw.
Bisher wird die Bewertung allerdings gar nicht gespeichert, sondern es wird sich nur die Summer aller Bewertungen pro Datum gemerkt, oder?
Wie könnte man nun das nun also umsetzen und anschließend zu diesem print kommen?
Bin für jede Hilfe extrem dankbar!!