-1

Caesar 暗号を実装しようとしています。

関数内でメッセージを返そうとしましたが、エラー メッセージが表示されます (関数外)。誰でも助けてもらえますか?

前もって感謝します

cat
cate
catec
catecv

message = input("type message ")

shift = int(input("Enter number to code "))
message = message.lower() #convets to lower case
print (message)

for a in message:
    if a in "abcdefghijklmnopqrstuvwxyz":
        number = ord(a)
        number += shift
        if number > ord("z"):
            number -= 26
        elif number < ord("a"):
             number += 26
        message = message + (chr  ( number))

    print (message)
4

1 に答える 1

8

を使用する Python 3 Caesar 暗号の実装は 次のstr.translate()とおりです。

#!/usr/bin/env python3
import string

def caesar(plaintext, shift, alphabet=string.ascii_lowercase):
    shifted_alphabet = alphabet[shift:] + alphabet[:shift]
    return plaintext.translate(plaintext.maketrans(alphabet, shifted_alphabet))

message = input("type message to encode")
shift = int(input("Enter number to code "))
print(caesar(message.lower(), shift))

Caesar CipherのPython 2 バージョンを次に示します。

于 2014-10-14T22:57:34.467 に答える