def caesar_shift(character, shift): """ Apply a caesar shift by 'shift' letters to 'character', if 'character' is not a single letter then return "" """ if len(character) != 1: return "" character = character.upper() if character >= "A" and character <= "Z": position = ord(character) - ord("A") new_position = (position + shift) % 26 return chr(new_position + ord("A")) else: return "" infile_name = "puzzle.txt" with open(infile_name, mode="r") as infile: text = infile.read() for shift in range(1, 26): print("\n\nShift =", shift) for character in text: print(caesar_shift(character, shift), end="")