Перевести / заменить несколько букв на Python - PullRequest
0 голосов
/ 15 октября 2018

Я работаю над очень простой программой перевода.В настоящее время он может иметь дело только с одним письмом во фразе.Например, если бы я ввел «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: ")))

Можно ли добавить еще одно письмо для перевода.Так, например, от «е» до «а» поверх от «т» до «у».чтобы выплюнуло "ясы".

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Используйте словарь.

en-gb = {'t':'y', add more here}
def translate(phrase): 
    translation = str()
    for char in phrase:
        translation = translation +   en-gb[char]
    return translation
0 голосов
/ 15 октября 2018

Существует гораздо более простой способ использования 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: ")))
...