Python字母翻译西里尔文

时间:2015-09-13 20:35:28

标签: python if-statement

我为学习俄语字母的初学者创建脚本。 所以我先创建了脚本:

print "Give me letter: "
letter = raw_input()

好吧,然后我做了:

if letter == "a":
    print "Аа"
elif letter == "b":
    print "Бб"
elif letter == "be":

等。如果我插入1个字母,那就行得很好。例如" a"。 但是如果我想插入" dog"该怎么办? (d - o - g)。如何制作?

我只是初学者,这实际上是我在python中的第一个应用。

修改。我也有:

letter = letter.lower()

(如果这对某人很重要)

2 个答案:

答案 0 :(得分:0)

如果用户输入的是单词而不是字母,会发生什么?

如果您想逐字翻译,请执行以下操作:

word = raw_input()

for letter in word:
    translate(letter)  # translate is a function that translates single letter

答案 1 :(得分:-1)

使用transilterate包(https://pypi.python.org/pypi/transliterate

可能更容易
from transliterate import translit
x = input("Choose character(s)")
print translit(x, "ru")

否则,您可以创建符号转换的dicitonary以避免大量的if / else语句。 toCryllicWord将生成一个上下数组,因为你似乎想要完成,但我相信你将不得不为潜在的缺失字符添加异常处理。

symbols = (u"abvgdeezijklmnoprstufh'y'eABVGDEEZIJKLMNOPRSTUFH'Y'E",
       u"абвгдеёзийклмнопрстуфхъыьэАБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЬЭ")

d = {a: b for a, b in zip(*symbols)}
def toCryllicWord(input):
    return ["".join([d[i.upper()] for i in input]),"".join([d[i.lower()] for i in input])]

print toCryllicWord('dog')[0]