diff --git a/ciphers/a1z26.py b/ciphers/a1z26.py index a1377ea6d397..36dec2876628 100644 --- a/ciphers/a1z26.py +++ b/ciphers/a1z26.py @@ -13,7 +13,13 @@ def encode(plain: str) -> list[int]: """ >>> encode("myname") [13, 25, 14, 1, 13, 5] + >>> encode("HELLO") + Traceback (most recent call last): + ... + ValueError: plain text must contain only lowercase letters 'a'-'z' """ + if not plain or any(not ("a" <= elem <= "z") for elem in plain): + raise ValueError("plain text must contain only lowercase letters 'a'-'z'") return [ord(elem) - 96 for elem in plain] @@ -21,7 +27,13 @@ def decode(encoded: list[int]) -> str: """ >>> decode([13, 25, 14, 1, 13, 5]) 'myname' + >>> decode([0, 27]) + Traceback (most recent call last): + ... + ValueError: encoded values must be integers between 1 and 26 """ + if not encoded or any(not (1 <= elem <= 26) for elem in encoded): + raise ValueError("encoded values must be integers between 1 and 26") return "".join(chr(elem + 96) for elem in encoded)