Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
gf_informatik:verschluesselung:codierung [2026-04-09 06:40] hofgf_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.
-<HTML><script type="module" src="https://bottom.ch/editor/stable/bottom-editor.js"></script></HTML> 
    
-<HTML><bottom-editor>letter = 'A'  # Muss ein einzelner Buchstabe sein! +<bottom-editor>letter = 'A'  # Muss ein einzelner Buchstabe sein! 
-print(ord(letter))</bottom-editor></HTML>+print(ord(letter))</bottom-editor>
  
 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_.
-<HTML><bottom-editor>print(chr(65))</bottom-editor></HTML>+<bottom-editor>print(chr(65))</bottom-editor>
  
 #### 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:
  
-<HTML><bottom-editor>name = "Papa Moll"+<bottom-editor>name = "Papa Moll"
 age = 42 age = 42
-print(f"Ich heisse {name} und bin {age*365} Tage alt.")</bottom-editor></HTML>+print(f"Ich heisse {name} und bin {age*365} Tage alt.")</bottom-editor>
  
 Um das Ausgabeformat des Arguments zu kontrollieren, fügen wir im entsprechenden Platzhalter eine _[[https://docs.python.org/3/library/string.html#format-specification-mini-language|Format Specification]]_ ein: nach der Variablen wird nach einem Doppelpunkt das Ausgabeformat eingeben, in Beispiel unten `07b`. Das `b` bedeutet wie oben die Ausgabe als Binärzahl; die vorangestellte `7` gibt die Breite (_width_) an, also, dass mindestens sieben Zeichen verwendet werden sollen; die `0` gibt an, mit welchem Zeichen wir die Zahl auffüllen wollen, wenn die Breite nicht erreicht wird: Um das Ausgabeformat des Arguments zu kontrollieren, fügen wir im entsprechenden Platzhalter eine _[[https://docs.python.org/3/library/string.html#format-specification-mini-language|Format Specification]]_ ein: nach der Variablen wird nach einem Doppelpunkt das Ausgabeformat eingeben, in Beispiel unten `07b`. Das `b` bedeutet wie oben die Ausgabe als Binärzahl; die vorangestellte `7` gibt die Breite (_width_) an, also, dass mindestens sieben Zeichen verwendet werden sollen; die `0` gibt an, mit welchem Zeichen wir die Zahl auffüllen wollen, wenn die Breite nicht erreicht wird:
  
-<HTML><bottom-editor># Die gleiche Zahl wird zweimal ausgegeben:+<bottom-editor># Die gleiche Zahl wird zweimal ausgegeben:
 # 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"Die Binärform von {number} ist {number:07b}")</bottom-editor></HTML>+print(f"Die Binärform von {number} ist {number:07b}")</bottom-editor>
 ### 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:|
-<HTML><bottom-editor>def printEntry(code):+<bottom-editor>def printEntry(code):
     print(f"{chr(code):2} | {code:7d} | {code:08b}"     print(f"{chr(code):2} | {code:7d} | {code:08b}"
  
Zeile 65: Zeile 64:
         printEntry(code)         printEntry(code)
                  
-printTable()</bottom-editor></HTML>+printTable()</bottom-editor>
 ++++ ++++
 </nodisp> </nodisp>
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:
  
-<HTML><bottom-editor>print(int('101010', 2))</bottom-editor></HTML>+<bottom-editor>print(int('101010', 2))</bottom-editor>
  
 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:
  
-<HTML><bottom-editor>one = '11110000'+<bottom-editor>one = '11110000'
 two = '01010101' two = '01010101'
  
Zeile 121: Zeile 120:
  
 xor = one_number ^ two_number xor = one_number ^ two_number
-print(f"{one} XOR {two} = {xor:08b}")</bottom-editor></HTML>+print(f"{one} XOR {two} = {xor:08b}")</bottom-editor>
  
 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://docs.python.org/3/library/stdtypes.html#str.encode|Python Dokumentation]])   * `string.encode()` und `bytes.decode()` ([[https://docs.python.org/3/library/stdtypes.html#str.encode|Python Dokumentation]])
  
-<HTML><bottom-editor>def textToBytes(text):+<bottom-editor>def textToBytes(text):
     """Converts a string into a list of ASCII codes."""     """Converts a string into a list of ASCII codes."""
     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, key))</bottom-editor></HTML>+print(decrypt(ciphertext, key))</bottom-editor>
 ++++ ++++
 </nodisp> </nodisp>
Zeile 280: Zeile 279:
 <nodisp 1> <nodisp 1>
 ++++ Lösung| ++++ Lösung|
-<html><bottom-editor layout="split">+<bottom-editor layout="split">
 # 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('image',img) cv.imshow('image',img)
 cv.waitKey() cv.waitKey()
-</bottom-editor></html>+</bottom-editor>
 ++++ ++++
 </nodisp> </nodisp>
  
  • gf_informatik/verschluesselung/codierung.1775716809.txt.gz
  • Zuletzt geändert: 2026-04-09 06:40
  • von hof