无法使用python 3.0转换或运行python 2.x代码

时间:2014-03-06 18:18:55

标签: python python-3.x

我正在尝试解决一个小的python问题。我在网上找到了解决方案,但我无法在python 3.0解释器中运行代码。我是初学者,我刚刚开始学习几天,请帮助我。< / p>

import string
l = string.lowercase
t = string.maketrans(l, l[2:] + l[:2]) 
m = """g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. 
     bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle.
     sqgle qrpgle.kyicrpylq() gq pcamkkclbcb. lmu ynnjw ml rfc spj."""
print m.translate(t))
print "map".translate(t)

2 个答案:

答案 0 :(得分:1)

您真正需要的只是print() 功能string.ascii_lowercase而不是string.lowercasestring.maketrans()函数现在是str类型的类方法:

import string
l = string.ascii_lowercase
t = str.maketrans(l, l[2:] + l[:2])
m = """g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. 
     bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle.
     sqgle qrpgle.kyicrpylq() gq pcamkkclbcb. lmu ynnjw ml rfc spj."""
print(m.translate(t))

这是您找到的代码的略微清理版本。现在停止欺骗Python挑战并自己解决问题。 : - )

答案 1 :(得分:1)

string.lowercase已更改为string.ascii_lowercase

string.maketrans现在是str.maketrans

print现在是一个函数,需要括号。

有关所有更改的详细信息,请参阅What's New In Python 3.0