我还在学习python,很多基础知识对我来说仍然很复杂。我刚开始使用codewars.com,它似乎是一个很棒的工具,可以学习到目前为止他们已经设置的任何语言。唯一的缺点是他们的python只有2.7,所以有些代码必须从3.0修改才能正常工作。我正在研究一个问题,现在要求我转换(我认为翻译是我正在寻找的)从键盘布局到手机布局的数字。所以我想把'7894561230'翻译成'1234567890'。也许这完全是错误的做法,但正如我所说,我还在学习。这是我的代码,但它不起作用。我想这是因为我正在使用python 3 ....有什么建议吗?
from string import maketrans
def computer_to_phone(numbers):
dict = str.maketrans('7894561230', '1234567890')
result = numbers.translate(dict)
return result
编辑:这是我收到的错误消息
Traceback:
in
in computer_to_phone
AttributeError: type object 'str' has no attribute 'maketrans'
答案 0 :(得分:5)
我猜这个问题来自于行 -
dict = str.maketrans('7894561230', '1234567890')
您正在尝试调用str.maketrans
,但是对于str
类没有这样的方法,在Python 2.x中,您应该使用您正在导入的string.maketrans()
-
from string import maketrans
def computer_to_phone(numbers):
dict = maketrans('7894561230', '1234567890')
result = numbers.translate(dict)
return result