我正在尝试制作一个愚蠢的翻译游戏。我将“ 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: ")))
很抱歉,如果我解释了所有这些怪异现象。完全编码和使用该网站!感谢所有帮助!
答案 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!"))
如果我们使用replace
,我们将给出错误的答案!
"Hello Ben! Benchmark is ok!".replace("Ben", "Idiot")
Out: Hello Idiot! Idiotchmark is ok!