주어진 문자는 오직 소문자만 존재하고, 주어진 키 값 만큼 shift 시켜 원래의 데이터 타입인 문자로 리턴하는 함수.
얼마만큼 shift 할지 변환하기 위해 키를 26으로 나누고 남은 값을 구하고, 해당하는 문자를 숫자로 represent 하는 함수로 바꾸고 그 키 값을 더해준다.
문자에 각각 해당하는 ASCII 숫자로 바꿔주면 a-z는 97-122 소문자 a는 97부터 시작하기 때문에 주어진 문자가 z 였다고 가정하면 키를 더한값은 122 + 키 이므로, 122 보다 클것이다. 122보다 큰것은 무의미하므로 다시 % 연산자를 사용하여 나머지 값을 구하고 97이 아닌 96을 더한다.
def caesarCipherEncryptor(string, key):
result = ""
for letter in string:
key = key % 26
rem = ord(letter) + key
if rem > 122:
rem = rem % 122 + 96
result += chr(rem)
return final
숫자를 다시 문자로 바꿔주는 chr() 함수와 아스키코드에 해당하는 숫자로 바꿔주는 ord() 안다면 어려운 문제는 아니다.