2013-03-23 84 views
-4

我需要爲0,1,2,3,...,9替換數字0,1,2,3,...,9中的每個數字。它可以表示爲一個10位字符串,指定如何替換0,1,2,3,...,9中的每個數字。例如,10位數字串'3941068257'指定了一個替換密碼,其中數字0用數字3代替,1用9代表,2用4代替,依此類推。要加密一個非負數的整數,用加密鍵指定的數字替換它的每個數字。實現函數密碼(),該函數採用將10位數的字符串密鑰和數字和數字字符串(即,要加密的明文)放在一起並返回明文的加密。Python,替換密碼

>>>encrypt('3491068257', '132') 
'914' 
>>>encrypt('3491068257', '111') 
'999' 

謝謝您的幫助:)

+0

你有沒有嘗試任何事情那沒有用? – 2013-03-23 04:34:36

+0

你的問題是什麼?你有什麼嘗試? – FatalError 2013-03-23 04:34:42

+0

你想要一個完整的解決方案嗎? – jamylak 2013-03-23 04:34:49

回答

0

我想看到的嘗試出來的OP發佈的,但無論如何

def encrypt(key,s): 
    return ''.join(key[int(c)] for c in s) 

這將使用字符串中的每個「關鍵」,並用它來查找適當的角色。

0

在加密函數中,您可以使用第一個字符串參數創建查找映射。 然後再通過每個角色在第二個參數字符串,並使用該地圖替換和創建並返回一個新字符串

1
from string import maketrans 

zero_through_nine = "".join(str(i) for i in range(10)) 
out_tab = "3491068257" 
trantab = maketrans(zero_through_nine,out_tab) 
print "111".translate(trantab) 

希望你看看就明白它....