2015-12-05 47 views
-2

在我的Python程序我產生號的列表,看起來像這樣:如何將chr轉換爲ord? - Python的

gen1=(random.sample(range(33,126), 8)) 
      conv=(gen1[0:]) 

那麼該列表轉換爲CHR這樣的:

chr="".join([chr(i) for i in conv]) 

例如打印結果看起來像這樣:

`&+hs,DY 

現在的問題是,我如何將其轉換回它是怎麼在後來在我的節目「CONV」,用戶輸入產生鍵,我的程序需要逆向工程回算什麼,我想這:

InPut=input("Please enter the key you used to encrypt the above text: ") 
     ord_key="".join([ord for d in InPut]) 

但如果能在先前生成的密鑰數量,這並不工作 請幫我

+0

首先,'CONV =(GEN1 [0:])'相同GEN1所以除非你想複製gen1然後只是使用gen1,不要使用'chr'作爲變量名,你需要在你的列表文件中加入'(str(ord(d))',但這不會給你輸出與conv或者相同的輸出gen1,您只需調用'ord(d)'來匹配輸出並忘記連接。 –

+0

謝謝我做了所有這一切,我得到「str objed不可調用」任何想法 – ThePlacid

+0

然後,你也已經陰影'str',不要使用內置函數/類型作爲變量名稱 –

回答

0

你是沒有要求ord得當,這應該這樣做:

InPut=input("Please enter the key you used to encrypt the above text: ") 
ord_key="".join(map(str,[ord(d) for d in InPut])) 

,如果你想在stringfied '&+hs,DY只是map CHR扭轉它:

reversed = map(chr, "`&+hs,DY") 

如果使用蟒3.X它轉換爲一個列表:

reversed = list(map(chr, "`&+hs,DY")) 
+0

返回這:<地圖對象在0x02F354D0> – ThePlacid

+0

將它轉換爲一個列表,我想你是使用python 3.x呢? – Netwave

+0

感謝您的幫助,是的即時通訊使用3.5.0和空閒運行 – ThePlacid

相關問題