2017-09-27 14 views
-1
def en(password,shift): 
    result = "" 
    for i in password: 
     result += chr(ord(i)+ shift) 
    return result 
def de(password,shift): 
    result = "" 
    for i in password: 
     result += chr(ord(i) - shift) 
    return result 
n=input("Input : ") 
s=int(input("shift number : ")) 
e=en(n,s) 
print("encoded : "+e) 
print("decoded : "+de(e,s)) 

これは、シーザーは私が解決することはできません印刷シーザー暗号は、一度

暗号化し取得する方法です。一度に「シフト番号」-30〜30を使って印刷するには? - 大文字と小文字が若干異なるマッサージする必要が

1)レターケース:

答えて

0

は、あなたが扱っていない三つのことがあります。

2)アルファベット以外の文字は、おそらく挑戦しないでください。

3)モジュラ演算 - 文字にシフトを加えると、アルファベットの終わりから外れることがありますので、時計のように始まりに折り返す必要があります。デコードすると逆になります。

あなたのコードを更新するように、この例を考えてみましょう:

% python3 test.py 
Input: Veni, vidi, vici 
Shift number: 13 
encoded: Irav, ivqv, ivpv 
decoded: Veni, vidi, vici 
% 
関連する問題