From 9c046770aa3e8bdcf699e71deac7394759ee25ed Mon Sep 17 00:00:00 2001 From: git-sandro Date: Thu, 27 Nov 2025 09:24:57 +0100 Subject: [PATCH] first commit --- README.md | 0 av_sudoku.py | 110 +++++++++++++++++++++++++++++++++++++++++++++ muster.py | 2 + palindrom_check.py | 10 +++++ pwd_ok.py | 7 +++ sort_list.py | 5 +++ 6 files changed, 134 insertions(+) create mode 100644 README.md create mode 100644 av_sudoku.py create mode 100644 muster.py create mode 100644 palindrom_check.py create mode 100644 pwd_ok.py create mode 100644 sort_list.py diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/av_sudoku.py b/av_sudoku.py new file mode 100644 index 0000000..498de23 --- /dev/null +++ b/av_sudoku.py @@ -0,0 +1,110 @@ +# ++++++++++++++++++++++++++++++++++++++++++++++ +# +++++++++++++ Überprüfung Sudoku +++++++++++++ +# ++++++++++++++++++++++++++++++++++++++++++++++ + +sudoku1 = [ + [5,3,4,6,7,8,9,1,2], + [6,7,2,1,9,5,3,4,8], + [1,9,8,3,4,2,5,6,7], + [8,5,9,7,6,1,4,2,3], + [4,2,6,8,5,3,7,9,1], + [7,1,3,9,2,4,8,5,6], + [9,6,1,5,3,7,2,8,4], + [2,8,7,4,1,9,6,3,5], + [3,4,5,2,8,6,1,7,9] +] + +sudoku2 = [ + [5,3,4,6,7,8,9,1,2], + [6,7,2,1,9,5,3,4,8], + [1,9,8,3,4,2,5,6,7], + [8,5,9,7,5,1,4,2,3], + [4,2,6,8,6,3,7,9,1], + [7,1,3,9,2,4,8,5,6], + [9,6,1,5,3,7,2,8,4], + [2,8,7,4,1,9,6,3,5], + [3,4,5,2,8,6,1,7,9] +] + +sudoku = sudoku1 # einfacher Switch, damit zwischen sudoku1 und sudoku2 umgestellt werden kann ohne Codeanpassungen + +# REMARK: wir arbeiten im ersten Teil mit assert(). Wenn assert True ist, wird einfach weiter gegangen, wenn es falsch +# ist, wird ein Error geworfen. Dash heisst, wenn unser Code mit dem assert() jeweils durch läuft ist alles i.O.! + +# Wir werden zu Beginn einfache, unabhängige Überprüfungen schreiben. Haben wir alle zusammen, packen wir diese in +# eine Funktion, welche unsere Sudoku überprüfen wird. + +# ASSERTIONS +# ++++++++++ + +# 1a. Überprüfung, ob alle Werte eingetragen sind -> keine None, keine Lücken etc -> 81 integer Werte +# Auftrag: Schreibt das Sudoku in eine 'flache' Liste (nicht verschachtelt) und checkt, ob diese 81 Elemente enthält + +single_row_sudoku_list = [] + +for row in sudoku: + single_row_sudoku_list.extend(row) + +assert(len(single_row_sudoku_list) == 81) + +# 1b. Auftrag: Checkt, ob 9 Zeilen und 9 Spalten vorliegen. +try: + assert(len(sudoku) == 9) +except AssertionError: + print("Assert error") +for row in sudoku: + assert(len(row) == 9) + +# 2. Auftrag: Checkt, ob alles integer_Werte sind -> EXKURS: list comprehension + +try: + for val in single_row_sudoku_list: + assert(isinstance(val, int)), f"{val!r} is not int" +except AssertionError as error: + print(error) + +# 3. Auftrag: Summe in jeder Zeile muss 1+2+3+...+9 = 45 geben. Checkt dies. + +try: + for row in sudoku: + assert(sum(row) == 45), f"Sum of {row!r} is not 45" +except AssertionError as error: + print(error) + +# 4. Auftrag: Summe in jeder Spalte muss ebenfalls 45 ergeben. Checkt dies auch. Nutzt für das ein Dictionary also +# Container, also z.B. {1: 45, 2: 45, 3: 45, ... 9: 45} + +sum_columns = {} +for row in sudoku: + for idx, element in enumerate(row): + idx = str(idx) + if idx in sum_columns: + sum_columns[idx] += element + else: + sum_columns[idx] = element +print(sum_columns) + +# Reichen diese ASSERTIONS für die sichere Bestimmung, ob das Sudoku richtig gelöst wurde? + +# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +# Wir überprüfen nun, ob in allen Zeilen, Spalten und Blocks alle valid_number=[1,2,3,4,5,6,7,8,9] vorkommen. + +# 5. Auftrag: Zeilenüberprüfung: + +valid_number = [1, 2, 3, 4, 5, 6, 7, 8, 9] + +for row in sudoku: + # assert(sorted(row) == valid_number) + for element in valid_number: + assert(element in row) + + +# 6. Auftrag: Spaltenüberprüfung: + +# 7. Auftrag: Blocküberprüfung: + +# Wir bauen nun die Code-Stücke aus 5-7 in eine Funktion 'check_sudoku_1()', welche als Argument die sudoku-Liste bekommt +# und als Resultat True oder False zurückgeben sollte. + +# 8. Baut diese Funktion und ruft sie auf \ No newline at end of file diff --git a/muster.py b/muster.py new file mode 100644 index 0000000..44ee5b9 --- /dev/null +++ b/muster.py @@ -0,0 +1,2 @@ +for i in range(10): + print() \ No newline at end of file diff --git a/palindrom_check.py b/palindrom_check.py new file mode 100644 index 0000000..5cf8705 --- /dev/null +++ b/palindrom_check.py @@ -0,0 +1,10 @@ +palindrom = "Malayalam" +make_palindrom = "" + +for i in range(len(palindrom)-1, -1, -1): + make_palindrom += palindrom[i] + +if make_palindrom.lower() == palindrom.lower(): + print(f"{palindrom} is a palindrom") +else: + print(f"{palindrom} not a palindrom") \ No newline at end of file diff --git a/pwd_ok.py b/pwd_ok.py new file mode 100644 index 0000000..d7b8f16 --- /dev/null +++ b/pwd_ok.py @@ -0,0 +1,7 @@ +pwd = "fjkdsaljfklasj432" + +if len(pwd) >= 8: + for c in pwd: + if c.isnumeric(): + print("OK") + break \ No newline at end of file diff --git a/sort_list.py b/sort_list.py new file mode 100644 index 0000000..276aee0 --- /dev/null +++ b/sort_list.py @@ -0,0 +1,5 @@ +li = [1, 4, 3, 2, 3, 9, 1] +li.sort() +print(li) +li.sort(reverse=True) +print(li) \ No newline at end of file