Wikipediaによれば、点字のUnicodeブロックはU + 2800 .. U + 28FFです。Pythonでテキストを点字(Unicode)に変換する
通常のテキストを点字記号(点)に変換しようとしています。そうするために、私はこの文字列をマッピングしている:この特定の文字列が記載されているマッピングの
" A1B'[email protected]/MSP\"E3H9O6R^DJG>NTQ,*5<-U8V.%[$+X!&;:4\\0Z7(_?W]#Y)="
マイコード:私はこのような点字を印刷したい
def toBraille(c):
unic=2800
mapping = " A1B'[email protected]/MSP\"E3H9O6R^DJG>NTQ,*5<-U8V.%[$+X!&;:4\\0Z7(_?W]#Y)="
i = mapping.index(c.upper())
if (i>0):
unic+=i
unichex = hex(unic)
return unichr(unichex))
if (i==0):
return '_'
if (i<O):
return '?'
def converter(txt):
tmp=""
for x in txt:
tmp+=str(toBraille(x))
return tmp
txt = raw_input("Please insert text: \n")
print(converter(txt))
input = hello world
output = ⠓⠑⠇⠇⠕ ⠺⠕⠗⠇⠙
問題は私の出力は次のようになります
内蔵されてのpythonに文字列を再マッピングInput = A
Output = 2801
非常に基本的なのか?何が特別なw.r.tです。あなたの希望する変換?あなたの平均的な同僚がそれを理解すると思いますか? –
私はwikipedia [https://en.wikipedia.org/wiki/Braille_ASCII]で読んだことがあります。このC文字列(PythonやC文字列リテラルを受け入れる他のプログラミング言語でも使用できます)は、点字ASCIIマッピング文字列の先頭にU + 2800から始まるUnicode点字U + 2800〜U + 283Fが順番に並んでいます。 – zerocoldTUN
これはあまり直感的ではありません。あなたのコードを破壊するものは2800です。それは16進数0x2800でなければなりません。混乱を取り除き、普通のPython辞書を書くのはなぜですか? '{'A':u '⠁'、...}'? –