2017-10-29 7 views
-2

私はPythonでrot13エンコードされた文字列をしましたし、私はそれを復号化するためにきました:デコードPythonのROT13列

"Gur dhvpx oebja sbk whzcrq bire gur ynml qbt" 

pythonで行うことが可能ですか?私はそれを行う方法を見つけることができません。

助けてください!

これは私が試したものです:

s = "Gur dhvpx oebja sbk whzcrq bire gur ynml qbt" 
s1 = "" 
for i in range(len(s)): 
    c = s[i] 
    if c >= 'a' and c <= 'm': c += 13 
    elif c > 'A' and c < 'M': c += 13 
    elif c >= 'n' and c < 'z': c -= 13 
    elif c >= 'N' and c <= 'Z': c -= 13 
    s1 += c 
    print(c) 
print(s1) 
+0

これは完全に不可能です。これを行う方法がないという事実も、あなた自身ではできないことを意味しています:): –

+0

は私が@WillemVanOnsemを試したことに疑問を持っています – user8852303

+0

いいえ、私はrot13エンコードされた文字列をデコードする必要があります@ KlausD。 – user8852303

答えて

0

rot13エンコードされた文字列をデコードするには、単にrot13(s)を計算する、すなわち、再び文字列のrot13を取り、sを言います。

rot13をpythonで計算する方法がわからない場合は、少しグーグルで試してみてください。私は完全を期すため、ここでのコードを記述します

[string.maketransがのpython3から削除されたためのpython3それだけpython2上で動作することに注意していない。] https://stackoverflow.com/a/3269756/3293087::私はかなりうまく機能するソリューションをGoogleで検索し、見つかった

# Python 2 solution 
import string 
rot13Table = string.maketrans( 
    "ABCDEFGHIJKLMabcdefghijklmNOPQRSTUVWXYZnopqrstuvwxyz", 
    "NOPQRSTUVWXYZnopqrstuvwxyzABCDEFGHIJKLMabcdefghijklm") 
rot13 = lambda s : string.translate(s, rot13Table) 

print rot13("Hello World!") 
# Outputs "Uryyb Jbeyq!" 

ノート:私はOPの元々投稿した内容に対応するデコードされた文字列を書くつもりはない。かなり攻撃的でホモフォビックだからだ。興味のある人は誰でも自分でそれをやることができます。

更新:私もthis SO answerからのpython 2 & 3の両方のために働く解決策を見つけました。これは、組み込みrot13エンコーダがcodecsモジュールにpythonであり判明:

# Python 2 & 3 compatible 
import codecs 
rot13 = lambda s : codecs.getencoder("rot-13")(s)[0] 

# Answer 
rot13("Gur dhvpx oebja sbk whzcrq bire gur ynml qbt") 

がアップデート2:OPは答えを知って断固あるとPythonがインストールされていないようですので、私が作成しましたJSソリューションhttps://codepen.io/anon/pen/zPYVQP。その他は慎重に行ってください。

+0

もう一度rot13を取ってください。素晴らしい説明@AbhishekKediaのおかげで、出力を投稿することができれば幸いです。再度、感謝します。 – user8852303

+0

あなたのマシンにインストールされていませんか? ;) –

0
import string #use this package 
utf8=string.maketrans("NOPQRSTUVWXYZnopqrstuvwxyzABCDEFGHIJKLMabcdefghijklm","ABCDEFGHIJKLMabcdefghijklmNOPQRSTUVWXYZnopqrstuvwxyz") #this are the related alphabets 
print(string.translate("Gur dhvpx oebja sbk whzcrq bire gur ynml qbt", utf8)) 
+0

こんにちは、ようこそ。上記のようにコードの出力に沿って説明するのは良いことです。 –

関連する問題