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


Xearox  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.

0
Python3beginner 
Fragesteller
 30.05.2018, 14:30
@Xearox

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.

0
Python3beginner 
Fragesteller
 30.05.2018, 14:55
@Xearox

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?

0
Xearox  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.

0
Python3beginner 
Fragesteller
 30.05.2018, 15:30
@Xearox

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'.

0
Xearox  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)
1
Python3beginner 
Fragesteller
 30.05.2018, 15:46
@Xearox

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!!!

0
Xearox  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.

1
Python3beginner 
Fragesteller
 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.

0
Xearox  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.

0