将字母映射到Tkin中的图片

2024-04-26 20:34:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用python的Tkinter(我也在使用PIL)编写一个程序,将克罗地亚语输入的单词“翻译”成“Glgoljica”。格拉戈尔吉卡是一个古老的克罗地亚字母表,看起来像这样:

croatian alphabet

所以我想知道有没有一种方法可以用Tkinter中的字典来解决这个问题?例如,我可以将字母“a”与“glagoljica”上的字母“a”的图片映射,将字母b与“glagoljica”上的字母“b”的图片映射,这样as和最终结果用户就可以得到一个在那个古老的克罗地亚字母表上完全翻译的语句吗?你知道吗

我想要的是下面的算法,但是只使用pics(而不是字符串)作为dict.keys()的值。你知道吗

dict={}
dict["a"]="e"
dict
>>>{'a': 'e'}
dict["i"]="u"
word="ai"
string=""
for letter in word:
    if letter in dict:
        string+=dict[letter]    
>>> string
'eu'

Tags: 方法in程序stringpiltkinter字母图片
1条回答
网友
1楼 · 发布于 2024-04-26 20:34:38

glagoljica字母的大小写占据unicode块U+2C00–U+2C5F,U+2C2F和U+2C5F未定义。Tkinter可以处理和显示字符,具体取决于您的系统和使用的字体。不需要PIL。你知道吗

如果您使用dict,它应该将slavic字符映射到glagoljica字符。你知道吗

glag = {'\u0410':'\u2C00', '\u0410':'\u2c01',}  # etc
print('\u0410', glag['\u0410'])
# ('А', 'Ⰱ')

我在Win7上使用3.4.2和Lucida控制台。你知道吗

但是,字符串转换应该使用str.translate公司还有一张桌子str.maketrans公司. 你知道吗

trans1 = str.maketrans(glag)
print('ААБАБ'.translate(trans1))
#'ⰁⰁБⰁБ'

这样,就不需要dict对象了。你知道吗

trans2 = str.maketrans('АБ', 'ⰁБ')  # could enter with \u excapes
print('ААБАБ'.translate(trans1))
#'ⰁⰁБⰁБ'

相关问题 更多 >