python - 在 Python 3 中创建一个单词翻译应用程序。任何“最佳实践”?
问题描述
我正在尝试编写一个将英语翻译成厨师(来自木偶表演)语言的代码
它应该将这些字母/声音更改为另一种语言
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”,反之亦然。
推荐阅读
- docker - Docker:Ubuntu 基础镜像使用 mail 和 mailx 发送电子邮件
- django - 将单个项目导出到 csv Django
- ios - SwiftUI UI 测试和匹配后代
- .htaccess - WHMCS URL-friendly 使用 htaccess 自定义创建的页面
- c++ - 为什么使用 iter = lst.insert(iter, word) 而不仅仅是 lst.insert(iter, word)
- c# - 使用 WordPressPCL 从 Wordpress 站点删除媒体时出错
- kotlin - 为什么 if not null 不适用于可变变量?
- r - 当需要 mahalanobis 和完全匹配时。如何在 MatchIt 中将它们结合起来
- javascript - 将 x 传递给函数并返回 y,反之亦然,无需任何条件语句
- javascript - Nextjs 增量静态生成,缓存清除