我想写一段代码,把英语翻译成Chef(来自muppet show)的语言。
它应该把这些字母音改成另一种语言。
Input Output
tion shun
an un
th z
v f
w v
c k
o oo
i ee
我必须写一个函数(def)来转换它,使它能打印新的语言。
print(eng2chef('this is a chicken'))
应回
zees ees a kheekken
到目前为止,我的代码是
help_dict = {
'tion': 'shun',
'an': 'un',
'th': 'z',
'v': 'f',
'w': 'v',
'c': 'k',
'o': 'oo',
'i': 'ee',
}
def eng2chef(s):
s.split()
for i in s:
if i in help_dict:
i = help_dict[i]
print(i)
eng2chef('this is a chicken')
但这只改变了某些字母,然后打印出这些字母。
ee
ee
k
ee
k
谁能帮帮我!
你可以通过迭代替换字符串来实现。
help_dict = [
('tion', 'shun'),
('an', 'un'),
('th', 'z'),
('v', 'f'),
('w', 'v'),
('c', 'k'),
('o', 'oo'),
('i', 'ee')
]
def eng2chef(s):
for x, y in help_dict:
s = s.replace(x,y)
return s
但请注意,我把你的dict改成了一个列表,所以替换顺序是强制的。这一点很关键,因为你不想把'w'替换成'v',然后再把'v'替换成'f',只能反过来。
..
help_dict = {
'tion': 'shun',
'an': 'un',
'th': 'z',
'v': 'f',
'w': 'v',
'c': 'k',
'o': 'oo',
'i': 'ee',
}
def eng2chef(s):
for i in s:
if i in help_dict:
j = help_dict[i]
print(i,j)
else:
print(i,i)
eng2chef("this is a chicken")
...输出。
t t
h h
i ee
s s
i ee
s s
a a
c k
h h
i ee
c k
k k
e e
n n
正如你所看到的,这将垂直输出文本。如果要返回翻译后的字符串,你需要创建一个新的字符串来返回,例如通过连接。
另外,还有更多的 pythonic 方法来实现你想做的事情,但对于这个答案,我选择继续使用你已经选择的编码风格。
你的代码将每个字符分割开来,使其只针对单个字母并改变它们。
help_dict = {
'tion': 'shun',
'an': 'un',
'th': 'z',
'v': 'f',
'w': 'v',
'c': 'k',
'o': 'oo',
'i': 'ee',
}
def eng2chef(word):
new_word = word
for key in help_dict.keys():
new_word = word.replace(key, help[key])
print(new_word)
eng2chef('this is a chicken')
輸出:ZEES EES A KHEEKEN。
这针对的是传入输入中所有在字典中找到的词,用给定的值替换它们.希望对大家有所帮助。