Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung | |||
| gf_informatik:verschluesselung:codierung [2026-04-09 06:40] – hof | gf_informatik:verschluesselung:codierung [2026-04-27 12:45] (aktuell) – hof | ||
|---|---|---|---|
| Zeile 11: | Zeile 11: | ||
| In Python können wir einen Buchstaben mit der `ord()` Funktion in die entsprechende ASCII-Zahl verwandeln. `ord` steht für _ordinal value_, also die Ordnungszahl eines Buchstabens in der ASCII-Textcodierung. | In Python können wir einen Buchstaben mit der `ord()` Funktion in die entsprechende ASCII-Zahl verwandeln. `ord` steht für _ordinal value_, also die Ordnungszahl eines Buchstabens in der ASCII-Textcodierung. | ||
| - | < | ||
| - | < | + | < |
| - | print(ord(letter))</ | + | print(ord(letter))</ |
| Mit `chr()` kann ein Zahlencode wieder in den codierten Buchstaben zurückverwandelt werden. `chr` steht für _character_. | Mit `chr()` kann ein Zahlencode wieder in den codierten Buchstaben zurückverwandelt werden. `chr` steht für _character_. | ||
| - | < | + | < |
| #### String Formatierung | #### String Formatierung | ||
| Zeile 23: | Zeile 22: | ||
| Oft möchten wir einen längeren Text ausgeben, wobei nur einzelne Teile an der richtigen Stelle eingefügt werden sollen. Dafür verwenden wir einen f-String, d.h. vor dem ersten Anführungszeichen steht der Buchstabe `f`. Im String können mit geschweiften Klammern Python-Ausdrücke (z.B. Variablen) in die Ausgabe eingefügt werden: | Oft möchten wir einen längeren Text ausgeben, wobei nur einzelne Teile an der richtigen Stelle eingefügt werden sollen. Dafür verwenden wir einen f-String, d.h. vor dem ersten Anführungszeichen steht der Buchstabe `f`. Im String können mit geschweiften Klammern Python-Ausdrücke (z.B. Variablen) in die Ausgabe eingefügt werden: | ||
| - | < | + | < |
| age = 42 | age = 42 | ||
| - | print(f" | + | print(f" |
| Um das Ausgabeformat des Arguments zu kontrollieren, | Um das Ausgabeformat des Arguments zu kontrollieren, | ||
| - | < | + | < |
| # einmal im normalen Dezimalformat, | # einmal im normalen Dezimalformat, | ||
| # einmal als Binärzahl (b) | # einmal als Binärzahl (b) | ||
| Zeile 35: | Zeile 34: | ||
| # - vorne mit Nullen (0) aufgefüllt. | # - vorne mit Nullen (0) aufgefüllt. | ||
| number = 42 | number = 42 | ||
| - | print(f" | + | print(f" |
| ### Aufgabe 1: ASCII-Tabelle erzeugen | ### Aufgabe 1: ASCII-Tabelle erzeugen | ||
| Drucke eine ASCII-Tabelle aus mit folgenden Einträgen: Buchstaben `a-z`, `A-Z`, Zifferen `0-9`, Leerzeichen ` `, Punkt `.` Für jeden Eintrag soll der Buchstabe sowie seine ASCII-Codierung in Dezimal- und im Binärformat enthalten sein. Das Binärformat soll 8 bits (=1 byte) enthalten und vorne mit Nullen aufgefüllt werden. | Drucke eine ASCII-Tabelle aus mit folgenden Einträgen: Buchstaben `a-z`, `A-Z`, Zifferen `0-9`, Leerzeichen ` `, Punkt `.` Für jeden Eintrag soll der Buchstabe sowie seine ASCII-Codierung in Dezimal- und im Binärformat enthalten sein. Das Binärformat soll 8 bits (=1 byte) enthalten und vorne mit Nullen aufgefüllt werden. | ||
| Zeile 51: | Zeile 50: | ||
| <nodisp 1> | <nodisp 1> | ||
| ++++Lösung: | ++++Lösung: | ||
| - | < | + | < |
| print(f" | print(f" | ||
| Zeile 65: | Zeile 64: | ||
| printEntry(code) | printEntry(code) | ||
| | | ||
| - | printTable()</ | + | printTable()</ |
| ++++ | ++++ | ||
| </ | </ | ||
| Zeile 110: | Zeile 109: | ||
| In Python können wir einen String, der eine Binärzahl codiert, mit der `int()` Funktion in eine richtige Zahl verwandeln, indem wir die Basis `2` angeben: | In Python können wir einen String, der eine Binärzahl codiert, mit der `int()` Funktion in eine richtige Zahl verwandeln, indem wir die Basis `2` angeben: | ||
| - | < | + | < |
| Die binäre XOR-Operation wird in Python mit dem `^` Operator ausgeführt: | Die binäre XOR-Operation wird in Python mit dem `^` Operator ausgeführt: | ||
| - | < | + | < |
| two = ' | two = ' | ||
| Zeile 121: | Zeile 120: | ||
| xor = one_number ^ two_number | xor = one_number ^ two_number | ||
| - | print(f" | + | print(f" |
| Mit diesen Informationen solltest du ein Programm schreiben können, das den folgenden Text entschlüsselt. | Mit diesen Informationen solltest du ein Programm schreiben können, das den folgenden Text entschlüsselt. | ||
| Zeile 199: | Zeile 198: | ||
| * `string.encode()` und `bytes.decode()` ([[https:// | * `string.encode()` und `bytes.decode()` ([[https:// | ||
| - | < | + | < |
| """ | """ | ||
| numbers = [] | numbers = [] | ||
| Zeile 274: | Zeile 273: | ||
| 00111010 00100001 01101110 00100001 00100110 00100011 00100101 | 00111010 00100001 01101110 00100001 00100110 00100011 00100101 | ||
| 01101110 00110010 00100100 00100011 00110111 01101111""" | 01101110 00110010 00100100 00100011 00110111 01101111""" | ||
| - | print(decrypt(ciphertext, | + | print(decrypt(ciphertext, |
| ++++ | ++++ | ||
| </ | </ | ||
| Zeile 280: | Zeile 279: | ||
| <nodisp 1> | <nodisp 1> | ||
| ++++ Lösung| | ++++ Lösung| | ||
| - | < | + | < |
| # In normal python: pip install opencv-python numpy | # In normal python: pip install opencv-python numpy | ||
| import micropip | import micropip | ||
| Zeile 325: | Zeile 324: | ||
| cv.imshow(' | cv.imshow(' | ||
| cv.waitKey() | cv.waitKey() | ||
| - | </ | + | </ |
| ++++ | ++++ | ||
| </ | </ | ||