| | |
| | | <> |
| | | """ |
| | | import sys |
| | | from typing import Final |
| | | from typing import Final, Any |
| | | |
| | | SEMESTER_LENGTH: Final[int] = 15 # 15 Woche pro Semester |
| | | ECTS_EFFORT = 30 # 1 ECTS ~ 30 h |
| | |
| | | |
| | | |
| | | def print_effort(effort: list[tuple[str, float, float, float]]) -> None: |
| | | max_char = 0 |
| | | header = ("Vorlesung", "ECTS", "V;U;T/Woche", "Aufwand/Woche") |
| | | max_char = len(header) |
| | | sep_width = 3 |
| | | sum_effort = 0 |
| | | for l in effort: |
| | | if l := len(l[0]) > max_char: |
| | | max_char = l |
| | | if (c := len(l[0])) > max_char: |
| | | max_char = c |
| | | sum_effort += l[-1] |
| | | |
| | | lecture_col_width = sep_width + max_char |
| | | ects_width = len("ECTS") + 1 |
| | | veranstaltung_col_width = 5 |
| | | header = ("Vorlesung", "ECTS", "V;U;T/Woche", "Aufwand/Woche") |
| | | ects_width = len(header[1]) |
| | | veranstaltung_col_width = len(header[2]) |
| | | effort_col_width = len(header[3]) |
| | | |
| | | def format_line(line: list[tuple[Any, Any, Any, Any]] ): |
| | | lecture = f"{line[0]}".rjust(lecture_col_width) |
| | | ects = f"{line[1]}".center(ects_width) |
| | | v = f"{line[2]}".center(veranstaltung_col_width) |
| | | e = f"{line[3]}".center(effort_col_width) |
| | | return f"{lecture} {ects} {v} {e}" |
| | | |
| | | print(format_line(header)) |
| | | for l in effort: |
| | | lecture = l[0].rjust(lecture_col_width) |
| | | ects = f"{l[1]}".ljust(ects_width) |
| | | v = f"{l[2]}".rjust(veranstaltung_col_width) |
| | | e = f"{l[3]}".rjust(veranstaltung_col_width) |
| | | print(f"{lecture} {ects} {v} {e}") |
| | | print(format_line(l)) |
| | | |
| | | print(f"Summe: {sum_effort}") |
| | | |
| | | |