言語処理100本ノック 2020「08. 暗号文」
問題文
問題の概要
文字の文字コードを得るには「ord()」を使います。逆に文字コードから文字を得る場合は「chr()」です。「print(ord(a), ord(z))」として、英小文字が取りうる文字コードの範囲を調べ、条件分岐に盛り込みましょう。
「''.join(リスト)」とすることで、リストを文字列として結合できます。
問題文からは読み取りづらいですが、219-122=97であり、暗号化も復号も同じ関数で処理できます。
def cipher(text): text = [chr(219 - ord(w)) if 97 <= ord(w) <= 122 else w for w in text] return ''.join(text) text = 'this is a message.' ans = cipher(text) print(ans) ans = cipher(ans) print(ans)