groupby() это из itertools же?
да
а дальше что то типа если нет желания классы заводить и уберите нахрен коментарии они мешают рефаткторить и вообще слишком быстро устаревают :)
def language(is_Eng):
return (26, 'az', 'AZ') if is_Eng else (32, 'ая', 'АЯ')
def crypt(decode, char, rot, corr, alpha):
left, right = map(ord, alpha)
if not decode:
x = ord(char) + rot
while x > right:
x -= corr
return chr(x)
else:
x = ord(char) - rot
while x < left:
x += corr
return chr(x)
def decoder(decoding: bool, rotate: int, text: str, correction: int, low: str, up: str):
code = []
for i in text:
if not i.isalpha():
code.append(i)
continue
code.append(crypt(decoding, i, rotate, correction, low if i.islower() else up))
return ''.join(code)