Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
616 views
in Technique[技术] by (71.8m points)

python - Caesar Cipher issue

I am trying to implement a Caesar cipher.

I have tried to return message in the function, but I get an error message (outside function). Can anyone help, please?

Thanks in advance

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)
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Here's Python 3 Caesar cipher implementation that uses 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))

Here's Python 2 version of Caesar Cipher.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...