Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Using string module solution in Clear category for Atbash Cipher by dbirmajer
from string import ascii_lowercase, ascii_uppercase
def atbash(plaintext: str) -> str:
encrypt = {**dict(zip(ascii_lowercase, ascii_lowercase[::-1])),
**dict(zip(ascii_uppercase, ascii_uppercase[::-1]))}
return ''.join(
encrypt[chr] if chr in encrypt else chr
for chr in plaintext)
if __name__ == "__main__":
print("Example:\nplaintext: testing")
print(atbash("testing"))
print(atbash("attack at dawn"))
# These "asserts" are used for self-checking and not for an auto-testing
assert atbash("testing") == "gvhgrmt"
assert atbash("attack at dawn") == "zggzxp zg wzdm"
assert atbash("Hello, world!") == "Svool, dliow!"
print("Coding complete? Click 'Check' to earn cool rewards!")
Jan. 11, 2022