У меня есть эта основная функция шифрования:Сделать основную функцию шифра более читаемым
def encrypt_decrypt(data, in_or_out):
pass_lst = list(data)
return_list = []
if in_or_out == "in":
for i in pass_lst:
num = ord(i) + 10
return_list.append(chr(num))
else:
for i in pass_lst:
num = ord(i) - 10
return_list.append(chr(num))
return ''.join(return_list)
Я хочу сделать этот шифр немного более читаемым и немного DRY
ээ .. Есть ли способ, что я могу сократить эту функцию успешно ?
список использование постижений например: 'return_list = [chr (ord (i) + 10) для i в pass_lst]' например. Таким образом, вам не нужно инициализировать \ declare списки тоже. Вся эта функция может быть сжата в 4-5 строках. –
Не записывайте одну функцию, которая выполняет две совершенно разные (и в этом случае противоположные) вещи, основанные на значении параметра. Вместо этого запишите две функции 'encrypt' и' decrypt'. – chepner
На самом деле он конденсируется в одну строку, если вы считаете это: 'return '.join ([chr (ord (i) + 10), если in_or_out ==' in 'else chr (ord (i) - 10) для i в список (данные)]) 'читаемый. Я делаю. –