2012-01-12 12 views
1

Possible Duplicate:
Caesar's Cipher using python, could use a little helpシーザー暗号シンプルな暗号化コード

def affine (a, b): 
    for i in range(26): 
     print chr(i+65) + ": " + chr (((a*i+b)%26)+65) 

これは、私が遭遇したものです。これを「Hello world」というメッセージでどのように使って、それを暗号化することができますか?

また、メッセージを復号化する方法もありますか?

+0

マッサージが暗号化されたとき以来? :X – fileoffset

+0

もごめんチームメイト、私は今日だけのpythonで私の手を保持し、私の講師は私が一日 –

答えて

0

読めるが、extenseかかわらず、それを行う方法はこれです:

def encript(message, offset): 
     result = "" 
     for letter in message: 
      if letter.isalpha(): 
       new_letter = chr(ord(letter) + offset) 
       if (new_letter > "Z" and letter.isupper()) or (new_letter > "z" and letter.islower()): 
        new_letter = chr(ord(new_letter) - 26) 
      else: 
       new_letter = letter 
      result += new_letter 
     return result 

1つのライナーのバージョンは、このように書くことができます。

>>> encript = lambda x, offset: "".join(chr(ord(le) + ((offset - (26 if (ord(le.upper()) + offset > ord("Z")) else 0)) if le.isalpha() else 0)) for le in x) 
>>> encript("IBM 9000", -1) 
'HAL 9000' 
+0

ファイル「」、ライン11 リターン結果 ^ IndentationError年末までにこれを学びたい:インデント解除はどんなアウターとも一致しません字下げレベルこのエラーは私のために来ています..... –

+0

あなたは私に上記のようなエラーを受けていますか教えてください –

+1

あなたは実際にあなたが今までの言語について語られた何かを聞いたことがありますか?参考資料を読む?任意のコードを記述してみてください。どんな努力をしても? –