Intermediate · Text processing · 150 of 264
Caesar cipher
Shift every letter forward in the alphabet by a number of places, wrapping from z to a. Keep capitals capital; leave other characters unchanged.
Input: a line of text, then the shift (0 to 25). Output: the encoded text.
Examples
Input
Hello, World! 3
Output
Khoor, Zruog!
Input
xyz 2
Output
zab
Input
abc 0
Output
abc
One more test checks other inputs when you press Check.
Stuck? The idea behind text processing
Go through text a character at a time, and build the answer as you go: a new string, or a list of pieces joined at the end with "".join().
ord() gives a character's number and chr() the character for a number: useful for shifting letters.
text = input()
out = []
for ch in text:
out.append(ch.upper() if ch.islower() else ch.lower())
print("".join(out))Watch for: Shifting letters past "z" must wrap round to "a": use % 26 on the letter's position in the alphabet.