Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Python翻译/替换多个字母_Python_Translate - Fatal编程技术网

用Python翻译/替换多个字母

用Python翻译/替换多个字母,python,translate,Python,Translate,我正在做一个非常基础的翻译程序。目前,它只能处理一个短语中的一个字母。例如,如果我输入“test”,它会脱口而出“yesy”,因为它将“t”改为“y”。下面是我用来做这件事的代码: def translate(phrase): translation = "" for letter in phrase: if letter in "t": translation = translation + "y" else:

我正在做一个非常基础的翻译程序。目前,它只能处理一个短语中的一个字母。例如,如果我输入“test”,它会脱口而出“yesy”,因为它将“t”改为“y”。下面是我用来做这件事的代码:

def translate(phrase):
    translation = ""
    for letter in phrase:
        if letter in "t":
            translation = translation + "y"
        else:
            translation = translation + letter
    return translation




print(translate(input("Enter word: ")))

是否可以添加另一封要翻译的信。例如,从“e”到“a”,再到“t”到“y”。这样它就会吐出“yasy”

使用str.replace有一种更简单的方法:
'test'.replace('t','y').replace('e','a')

但是,如果您希望替换越来越多的字母
str.translate
,则效率会更高:

from string import maketrans

trans_from = "te"
trans_to = "ya"
trans_model = maketrans(trans_from, trans_to)

'test'.translate(trans_model)
或者,如果您想保留代码,可以使用
elif

def translate(phrase):
    translation = ""
    for letter in phrase:
        if letter in "t":
            translation = translation + "y"
        elif letter in "e":
            translation = translation + "a"
        else:
            translation = translation + letter
    return translation

print(translate(input("Enter word: ")))

使用str.replace有一种更简单的方法:
'test'.replace('t','y').replace('e','a')

但是,如果您希望替换越来越多的字母
str.translate
,则效率会更高:

from string import maketrans

trans_from = "te"
trans_to = "ya"
trans_model = maketrans(trans_from, trans_to)

'test'.translate(trans_model)
或者,如果您想保留代码,可以使用
elif

def translate(phrase):
    translation = ""
    for letter in phrase:
        if letter in "t":
            translation = translation + "y"
        elif letter in "e":
            translation = translation + "a"
        else:
            translation = translation + letter
    return translation

print(translate(input("Enter word: ")))
使用字典

en-gb = {'t':'y', add more here}
def translate(phrase): 
    translation = str()
    for char in phrase:
        translation = translation +   en-gb[char]
    return translation
使用字典

en-gb = {'t':'y', add more here}
def translate(phrase): 
    translation = str()
    for char in phrase:
        translation = translation +   en-gb[char]
    return translation

你看过内置的吗?是的,很有可能。虽然我不确定这就是你想要的…?我的str.replace(…).replace(…)?是的,考虑到各种级别的变化,有很多例子说明了如何做到这一点。请在这里发布前进行研究。除此之外,请阅读有关
replace
translate
方法的内容。您是否查看了内置方法?是的,非常可能。虽然我不确定这就是你想要的…?我的str.replace(…).replace(…)?是的,考虑到各种级别的变化,有很多例子说明了如何做到这一点。请在这里发布前进行研究。除此之外,请阅读
replace
translate
方法。是否介意正确缩进代码的“elif”部分。当我手动缩进它时,它似乎无法工作。当我输入“test”时,它的结果是“yayt”。@Mihkel正确缩进现在工作得非常好,我感谢您的帮助。您介意正确缩进代码的“elif”部分吗。当我手动缩进它时,它似乎无法工作。当我输入“测试”时,它会出现“yayt”。@Mihkel正确缩进now工作完美,我感谢您的帮助。