2014-03-06 65 views
-1

我想解決一個小python problem.i在網上找到了解決方案,但我無法在python 3.0 interpreter.i'm初學者中運行代碼我剛開始學習幾天後請幫助我。無法轉換或運行python 2.x代碼使用python 3.0

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) 
+0

對於它的價值,這個代碼不2.X運行任。 'print m.translate(t))'給出一個語法錯誤。 – Kevin

+0

您通常無法在Python 3上運行Python 2代碼。您是否在網上搜索了Python 2和Python 3之間差異的信息?你應該嘗試自己尋找答案,然後在有問題的地方問一些你不明白的問題。 – BrenBarn

+0

@Kevin在這裏運行http://www.compileonline.com/execute_python_online.php – saimadan

回答

1

所有你需要的,真的,是print()功能string.ascii_lowercase而不是string.lowercase。該​​功能現已在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挑戰中作弊並自己解決問題。 :-)

+0

我的意圖不是贏,我只是想學習。 – saimadan

+1

@saimadan:如果你不從互聯網複製代碼,你會學得更快。 –

+0

你可以建議我一些在線資源,我可以學習排除documentation.and也發現2.0和3.0之間的差異 – saimadan

1

string.lowercase已更改爲string.ascii_lowercase

string.maketrans現在是現在str.maketrans

print是一個函數,需要支架。

有關的所有更改的詳細信息,請參閱What's New In Python 3.0

+0

非常感謝它的工作 – saimadan