2015-12-05 4 views
0

В моей программе пользователь вводит некоторый зашифрованный текст, для моего примера зашифрованный текст: ,@AK ,=PL /ADD x= {F;JQHL=< ghi p_Python - Sum список чисел

Это очень простая программа, прежде чем какой-либо один говорит его низкий уровень шифрования .. я знать!

Во всяком случае она преобразует зашифрованный текст в ASCII-коде, так это выглядит следующим образом:

print(convert) 
[111, 37, 38, 48, 32, 111, 34, 53, 49, 32, 114, 38, 41, 41, 32, 93, 34, 32, 96, 43, 126, 47, 54, 45, 49, 34, 33, 32, 76, 77, 78, 32, 85, 68] 

мне нужна помощь, хотя, мне нужно каждый номер в этом списке следует вычесть из 27, то, если результат менее 33 добавьте 94, затем напечатайте цифры, как только они закончили эту сумму, как мне это сделать?

+0

Вы можете упростить ваши требования? Не удалось получить его –

+0

Что это значит? * напечатайте цифры, как только они закончили эту сумму * –

+0

Вы можете «отобразить» функцию в свой список. Например: определение функции куба (х): возвращение х * х * x' карта (куб, конвертировать) – salomonvh

ответ

1

Использовать список, проще и аккуратно. Вы можете сделать это так, но я предлагаю вам прочитать что-то об этом, чтобы понять, что происходит.

convert = [111, 37, 38, 48, 32, 111, 34, 53, 49, 32, 114, 38, 41, 41, 32, 93, 34, 32, 96, 43, 126, 47, 54, 45, 49, 34, 33, 32, 76, 77, 78, 32, 85, 68] 

convert = [x - 27 if x - 27 >= 33 else x - 27 + 94 for x in convert] 
print(convert) 

Результат: [84, 104, 105, 115, 99, 84, 101, 120, 116, 99, 87, 105, 108, 108, 99, 66, 101, 99, 69 , 110, 99, 114, 121, 112, 116, 101, 100, 99, 49, 50, 51, 99, 58, 41]

оставил x - 27 + 94, чтобы вы поняли, что я сделал.

Заканчивать список постижение здесь: list comprehension

0
list = [111, 37, 38, 48, 32, 111, 34, 53, 49, 32, 114, 38, 41, 41, 32, 93, 34, 32, 96, 43, 126, 47, 54, 45, 49, 34, 33, 32, 76, 77, 78, 32, 85, 68] 
    for n in range(len(list)): 
     list[n] -= 27 
     if(list[n] < 33): 
      list[n] += 94 
    print(list) 

это должно сделать работу

+0

Нужно добавить 94 не 95 – Rafael

+0

спасибо, дайте ему шанс: D – ThePlacid

+0

oh nice catch PyPiper ill edit my post –

0

Просто map функция, которая выполняет требуемую операцию в списке:

94 -27 = 67 -> То, что вы должны суммировать в случае, если условие истинно ...

>>> lst = [111, 37, 38, 48, 32, 111, 34, 53, 49, 32, 114, 38, 41, 41, 32, 93, 34, 32, 96, 43, 126, 47, 54, 45, 49, 34, 33, 32, 76, 77, 78, 32, 85, 68] 
>>>>print map(lambda x: x + 67 if x-27 < 33 else x, lst) 

[205, 131, 132, 142, 126, 205, 128, 147, 143, 126, 208, 132, 135, 135, 126, 187, 128, 126, 190, 137, 220, 141, 148, 139, 143, 128, 127, 126, 170, 171, 172, 126, 179, 162] 
0

IIUC вы могли бы попробовать, что, где л вы перечисляете:

l = [111, 37, 38, 48, 32, 111, 34, 53, 49, 32, 114, 38, 41, 41, 32, 93, 34, 32, 96, 43, 126, 47, 54, 45, 49, 34, 33, 32, 76, 77, 78, 32, 85, 68] 

l1 = [i + 67 if (i - 27) < 33 else i - 27 for i in l] 

In [8]: l1 
Out[8]: 
[84, 104, 105, 115, 99, 84, 101, 120, 116, 99, 87, 105, 108, 108, 99, 66, 101, 99, 69, 110, 99, 114, 121, 112, 116, 101, 100, 99, 49, 50, 51, 99, 58, 41] 
Смежные вопросы