如何使用编码和解码打印希腊语,波斯语和西班牙语字母?

时间:2017-11-10 21:29:34

标签: python

我更新了问题,因为我修复了之前代码中的第一个问题。 但我还有另一个问题。 最后的elif不起作用。它将始终打印" Not Found"当我想从希腊语翻译成西班牙语时。 我认为这些问题只是在最后3个问题,因为我试图翻译反向(希腊语翻译成英语或西班牙语翻译成英语等) 当我输入第一个键和值

时,它会给出正确的答案
def translate(fm,to,word):
    en_sp={"bee":"abeja", "iguana":"iguana", "scorpion":"alacrán", "giraffe":"jirafa", "spider":"araña"}
    en_gr={"bee":"μέλισσα", "iguana":"ιγκουάνα", "scorpion":"σκορπιός", "giraffe":"καμηλοπάρδαλη", "spider":"αράχνη"}
    sp_gr={"abeja":"μέλισσα","iguana":"ιγκουάνα","alacrán":"σκορπιός","jirafa":"καμηλοπάρδαλη","araña":"αράχνη"}
    if((fm=="English" or fm=='ENG' or fm=='eng' or fm=='english' or fm=='ENGLISH' or fm=='Eng')and(to=="Spanish" or to=="SP" or to=="sp" or to=="Sp" or to=="spanish" or to=="SPANISH")):
        for i in en_sp:
            if(word in en_sp):
                print(en_sp[word])
                break
            else:
                print("Not Found")
                break
    elif((fm=="English" or fm=='ENG' or fm=='eng' or fm=='english' or fm=='ENGLISH' or fm=='Eng')and(to=="Greek" or to=="GR" or to=="gr" or to=="Gr" or to=="greek" or to=="GREEK")):
        for i in en_gr:
            if(word in en_gr):
                print(en_gr[word])
                break
            else:
                print("Not Found")
                break
    elif((fm=="Spanish" or fm=="SP" or fm=="sp" or fm=="Sp" or fm=="spanish" or fm=="SPANISH")and(to=="Greek" or to=="GR" or to=="gr" or to=="Gr" or to=="greek" or to=="GREEK")):
        for i in sp_gr:
            if(word in sp_gr):
                print(sp_gr[word])
                break
            else:
                print("Not Found")
                break
    elif((to=="English" or to=='ENG' or to=='eng' or to=='english' or to=='ENGLISH' or to=='Eng')and(fm=="Spanish" or fm=="SP" or fm=="sp" or fm=="Sp" or fm=="spanish" or fm=="SPANISH")):
        for i in en_sp:
            if(en_sp[i]==word):
                print(i)
                break
            else:
                print("Not Found")
                break
    elif((to=="English" or to=='ENG' or to=='eng' or to=='english' or to=='ENGLISH' or to=='Eng')and(fm=="Greek" or fm=="GR" or fm=="gr" or fm=="Gr" or fm=="greek" or fm=="GREEK")):
        for i in en_gr:
            if(en_gr[i]==word):
                print(i)
                break
            else:
                print("Not Found")
                break
    elif((to=="Spanish" or to=="SP" or to=="sp" or to=="Sp" or to=="spanish" or to=="SPANISH")and(fm=="Greek" or fm=="GR" or fm=="gr" or fm=="Gr" or fm=="greek" or fm=="GREEK")):
        for i in sp_gr:
            if(sp_gr[i]==word):
                print(i)
                break
            else:
                print("Not Found")
                break




def Menu():
    print("Please Choose The language you are going to translate from:\n\t 1)English\n\t 2)Spanish\n\t 3)Greek:\n")
    fm=input()
    print("Please Choose The language you are going to translate to:\n\t 1)English\n\t 2)Spanish\n\t 3)Greek:\n")
    to=input()
    print("Please Enter the word you are going to translate from ",fm," to ",to," :")
    word=input()
    translate(fm,to,word)



#if(fm=='English' or fm=='ENG' or fm=='eng' or fm=='english' or fm=='ENGLISH' or fm=='Eng'):
Menu()

在不起作用的情况下的示例输出:

Please Choose The language you are going to translate from:
     1)English
     2)Spanish
     3)Greek:

gr
Please Choose The language you are going to translate to:
     1)English
     2)Spanish
     3)Greek:

sp
Please Enter the word you are going to translate from  gr  to  sp  :
ιγκουάνα
Not Found

1 个答案:

答案 0 :(得分:0)

您可以使用以下代码替换最后3个elif 代码交换键和值,并将工作。 祝你好运

样品:

new_dict1 = dict (zip(en_sp.values(),en_sp.keys()))
for i in new_dict1:
    if(word in new_dict1):
        print(new_dict1[word])
        break
    else:
        print("Not Found")
        break