如何在Python中输入多个单词进行翻译?

时间:2019-06-17 03:06:25

标签: python python-3.x python-2.7

我正在尝试制作一个愚蠢的翻译游戏。我将“ Ben”替换为“ Idiot”,但只有当我输入的唯一单词是“ Ben”时,它才有效。如果我输入“ Hello,Ben”,那么控制台将打印出空白语句。我正在尝试获取“你好,白痴”。或者,如果我输入“你好,本!”我想得到“嗨,白痴!”。如果我输入“本”,则仅当输入名称本身时,它才会转换为“白痴”。

我正在使用Python 3,并且正在使用函数def translation(word):所以也许我使过程过于复杂了。

def translate(word):
translation = ""
if word == "Ben":
    translation = translation + "Idiot"

return translation


print(translate(input("Enter a phrase: ")))

很抱歉,如果我解释了所有这些怪异现象。完全编码和使用该网站!感谢所有帮助!

2 个答案:

答案 0 :(得分:0)

为此使用str.replace()函数

sentence = "Hi there Ben!"
sentence=sentence.replace("Ben","Idiot")
Output: Hi there Idiot!
#str.replace() is case sensitive 

答案 1 :(得分:0)

首先,您必须将字符串拆分为单词:

s.split()

但是该函数用white spaces将字符串分割成单词,这还不够好!

s = "Hello Ben!"
print(s.split())

Out: ["Hello", "Ben!"]

在此示例中,您无法轻松找到“奔”。 在这种情况下,我们使用re

re.split('[^a-zA-Z]', word)

Out: ["Hello", "Ben", ""]

但是,我们错过了“!”,我们将其更改:

re.split('([^a-zA-Z])', word)

Out: ['Hello', ' ', 'Ben', '!', '']

最后:

重新导入

def translate(word):
    words_list = re.split('([^a-zA-Z])', word)
    translation = ""
    for item in words_list:
        if item == "Ben":
            translation += "Idiot"
        else:
            translation += item

    return translation


print(translate("Hello Ben! Benchmark is ok!"))

PS:

如果我们使用replace,我们将给出错误的答案!

"Hello Ben! Benchmark is ok!".replace("Ben", "Idiot")

Out: Hello Idiot! Idiotchmark is ok!