Informatik Thonny Code?
Hallo, ich soll für den Informatikunterricht mit dem Programm "Thonny" einen Code zum Verschlüsseln von Nachrichten entwickeln. Dafür habe ich einen Hilfe Linke bekommen https://www.inf-schule.de/programmierung/imperativeprogrammierung/fallstudien/modularisierung/fallstudie_verschluesselungcaesar/automatisierung). In dem Link soll man ganz untern einen Teil des Codes so ergänzen, dass der eingegebene Text nur in Großbuchstaben wiedergegeben wird. Ich weiß aber nicht wie hat dazu jemand eine Idee ? (Das Problem mit Ä, Ö und Ü habe ich schon gelöst).
1 Antwort
Hi,
das Grundgerüst ist ja schon vorgegeben, daher solltest du dich daran orientieren (auch wenn es nicht zwingend die beste Lösung ist, beim Programmieren gibt es immer mehrere Wege zum Ziel).
# Vorgabe
text = 'Dieser Text müßte "bereingt" werden.'
# Verarbeitung
textNeu = ''
for zeichen in text:
if ord(zeichen) >= ord('A') and ord(zeichen) <= ord('Z'):
# zeichen ist ein Großbuchstabe
textNeu = textNeu + zeichen
# ...
# Ausgabe
print(text)
print(textNeu)
Der vorgegebene Code geht also jedes einzelne Zeichen durch, und prüft, ob es ein Großbuchstabe ist.
Jetzt musst du noch die anderen Fälle abfragen - z.B. mit weiteren elif-Statements nach dem ersten if-Statement. Wenn du einen Kleinbuchstaben erkennst, anschließend umwandeln und an den Zieltext anhängen.
Die Erkennung kannst du mit einer kleinen Änderung genau wie bei den Großbuchstaben umsetzen:
if ord(zeichen) >= ord('A') and ord(zeichen) <= ord('Z'):
Was musst du hier ändern, um kleine Buchstaben zu erkennen?
Für die Umwandlung hast du dann mehrere Möglichkeiten. Python bietet z.B. eine Methode, um Strings in Großbuchstaben umzuwandeln. Damit würdest du dir sogar die Abfrage ersparen. Ich befürchte aber, die Aufgabe erwartet eine andere Lösung ;)
Alternativ kannst du dir auch mal die ASCII-Tabelle anschauen. Du hast ja schon gelernt, dass du ein Zeichen auch als Zahl darstellen kannst, und umgekehrt.
Die Buchstaben A-Z haben die Zahlen 65-90, a-z die Werte 97-122. Die Reihenfolge ist immer gleich. Die Differenz zwischen Groß- und Kleinbuchstabe ist also immer 32. Vielleicht hilft dir das weiter :)
Viele Grüße
SacredChao