2020年12月10日木曜日

言語処理100本ノック 問題08

問. 与えられた文字列の各文字を,以下の仕様で変換する関数cipherを実装せよ.
英小文字ならば(219 - 文字コード)の文字に置換
その他の文字はそのまま出力
この関数を用い,英語のメッセージを暗号化・復号化せよ

 

解答例

#暗号文cipherの定義

def cipher(str):
  rep = [chr(219 - ord(x)) if x.islower() else x for x in str]

  return ''.join(rep)

#message(元の文)の定義

message = 'the quick brown fox jumps over the lazy dog'
#message(暗号化したもの)の定義

message = cipher(message)

#暗号化した文の表示
print('暗号化:', message)

#message(復号化したもの)の定義
message = cipher(message)
#複合化した文の定義

print('復号化:', message) 

 

出力

暗号化: gsv jfrxp yildm ulc qfnkh levi gsv ozab wlt
復号化: the quick brown fox jumps over the lazy dog


参考リンク

【言語処理100本ノック 2020】第1章: 準備運動 


0 件のコメント:

コメントを投稿