作业是:
您的任务是更正数字化文本中的错误.您只需要处理以下错误:
我的代码:
def correct(string):
for i in string:
if '5' in string:
string = string.replace('5','S')
elif '0' in string:
string = string.replace('0','O')
elif '1' in string:
string = string.replace('1','I')
return string
Run Code Online (Sandbox Code Playgroud)
我知道这个解决方案不适用于:
Test.assert_equals(correct("51NGAP0RE"),"SINGAPORE");
Run Code Online (Sandbox Code Playgroud)
有没有人有关于如何使这个更通用的功能,适用于每个单词的提示?
你可以str.replace直接使用.
def correct(string):
return string.replace('5','S').replace('0','O').replace('1','I')
Run Code Online (Sandbox Code Playgroud)
你为什么不利用str.maketrans和str.translate:
>>> "51NGAP0RE".translate(str.maketrans('501', 'SOI'))
'SINGAPORE'
Run Code Online (Sandbox Code Playgroud)
包含在一个功能中:
def correct(s):
return s.translate(str.maketrans('501', 'SOI'))
Run Code Online (Sandbox Code Playgroud)