翻译python 2.7

时间:2015-07-31 16:01:06

标签: python python-2.7

我还在学习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'

1 个答案:

答案 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