2015-12-05 3 views
-2

в моей питона программе я создать список чисел который выглядит следующим образом:Как преобразовать chr в ord? - Python

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

затем этот список преобразуется в CHR так:

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

напечатанный результат, например, будет выглядеть как это:

`&+hs,DY 

Теперь мой вопрос, как я преобразовать его обратно, как это было в «ко» позже в моей программе, пользователь вводит сгенерированный ключ и моя программа должна перепроектировать его обратно, чтобы вычислить что-то, я попытался это:

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

но не работает, если есть номера в ключе, который был создан ранее , пожалуйста, помогите мне

+0

Во-первых, 'конв = (Gen1 [0:])' такой же, как Gen1 так что если вы хотите скопировать из gen1, то просто используйте gen1, не используйте 'chr' в качестве имени переменной, вам нужно' (str (ord (d)) 'в вашем списке comp, но это не даст вам тот же результат, что и 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

, который возвращает this: <объект карты в 0x02F354D0> – ThePlacid

+0

преобразовать его в список, я полагаю, вы используете python 3.x? – Netwave

+0

спасибо за помощь и да им, используя 3.5.0 и запустив его в режиме ожидания – ThePlacid

Смежные вопросы