Wie übersetze ich einen Text in Braille-Vollschrift aus einer Textdatei in Normalschrift mit Hilfe eines Wörterbuchs in Python 3?

1 Antwort

Du bist ein Scherzkeks xD

Du gibst mit print (word) die komplette map aus. Du musst auch

word = vollschrift_schwarzschrift.get(letter); 

machen. mit values() gibst du der Variable word alle values als wert


Python3beginner 
Beitragsersteller
 30.05.2018, 14:10

Schade, dass ich kein Bild ins Kommentar stellem kann.

Das habe ich so verbessert und erhalte als Output 4 untereinander stehende Kreise, sollte aber ein Gedicht erhalten.

verreisterNutzer  30.05.2018, 14:12
@Python3beginner

Ich benutze für Screenshot das Programm Greenshot. Damit kannste einen Bereich auswählen und direkt auf Imgur hochladen, mach das Programm automatisch. Dann kannste hier den Link posten.

verreisterNutzer  30.05.2018, 14:08

Ich würd es aber noch etwas anders machen

text = f.read()
characters = list(text)
for c in characters:
  if(c in vollschrift_schwarzschrift):
    print (vollschrift_schwarzschrift.get(c))
  else:
    print (c)

Code ohne Gewähr. Bin kein Python Entwickler ;-) Sollte aber rein von der Logik her funktionieren.

Python3beginner 
Beitragsersteller
 30.05.2018, 14:30
@verreisterNutzer

Also ich arbeite ohne Liste, aber mit Wörterbuch. Den Text 'zu listen' macht für mich grade keinen Sinn. So angewendet auf das Wörterbuch, komme ich nicht zur Lösung. Aber danke.

Python3beginner 
Beitragsersteller
 30.05.2018, 14:55
@verreisterNutzer

Okay, danke, verstanden. 👍 dann erhalte ich im Output alle Buchstaben in der richtigen Reihenenfolge untereinander aufgelistet, aber keinen vollständigen Text, der mit Leerzeichen und Absätzen aus dem Beispieltext übereinstimmt.

Wie würde ich daraus wieder einen Text erhalten?

verreisterNutzer  30.05.2018, 15:19
@Python3beginner

Eigentlich müsste das gehen, es sei denn das else: funktioniert nicht.

text = f.read()
characters = list(text)
for c in characters:
  if(c in vollschrift_schwarzschrift):
    print (vollschrift_schwarzschrift.get(c))
  else:
    print (c)

eigentlich sollte print(c) das leerzeichen mit ausspucken...Lass dir mal mit print(characters) alle Character ausgeben, ob dort Leerzeichen drin sind.

Python3beginner 
Beitragsersteller
 30.05.2018, 15:30
@verreisterNutzer

Es geht, aber weil ich mit einer Liste arbeite, bekomme ich jedes Zeichen übersetzt untereinander aufgelistet. Ich erhalte keinen vollständigen Text wie in 'text'.

verreisterNutzer  30.05.2018, 15:35
@Python3beginner

dann mach einfach folgendes

text = f.read()
characters = list(text)
newText = ""
for c in characters:
  if(c in vollschrift_schwarzschrift):
    newText += vollschrift_schwarzschrift.get(c)
  else:
    newText += c
print (newText)
Python3beginner 
Beitragsersteller
 30.05.2018, 15:46
@verreisterNutzer

Jaaaaa, das klappt! Ich muss ehrlich sagen, dass ich auf so eine Lösung niemals gekommen wäre. Auch wenn ich sie, auch dank deiner Erläuterung, gut nachvollziehen kann. Herzlichen Dank!!!

verreisterNutzer  30.05.2018, 15:49
@Python3beginner

Kein Thema ;-) Ich kann, wie schon bereits erwähnt, kein Python. Arbeite selbst aber seit gut 10 Jahren mit Java und weiß daher, wie man das ein oder andere machen kann.