import string def CaeserCipher(s, k): L =[] for i in range(0, len(s)): if((ord(s[i]) >= ord("a") and ord(s[i]) <= ord("z"))): # check if it is small alphabets temp = ord(s[i]) - ord("a") # store the difference between the ASCII of our alphabet and ASCII of 'a'. x = (temp + k) % 26 # compute cipher from Wikipedia formula x = x + ord("a") # add back ord("a"), which was subtracted initially L.append(chr(x)) # add this to our list elif((ord(s[i]) >= ord("A") and ord(s[i]) <= ord("Z"))): # repeat above step for capital letters temp = ord(s[i]) - ord("A") x = (temp + k) % 26 x = x + ord("A") L.append(chr(x)) else: L.append(s[i]) # not alphabet, add to list return ''.join(L) # generate our string, preserving the format of original string