gpt4 book ai didi

Python Caesar cipher ascii 添加空格

转载 作者:太空宇宙 更新时间:2023-11-03 13:09:28 27 4
gpt4 key购买 nike

我正在尝试生成凯撒密码,但遇到了问题。

它工作得很好,但我想在输入的单词中添加空格。如果你输入的句子中有空格。它只是在加密时打印出 = 而不是空格。谁能帮我解决这个问题,以便打印出空格?

这是我的代码:

word = input("What is the message you want to encrypt or decrypt :")
def circularShift(text, shift):
text = text.upper()
cipher = "Cipher = "
for letter in text:
shifted = ord(letter) + shift
if shifted < 65:
shifted += 26
if shifted > 90:
shifted -= 26
cipher += chr(shifted)
if text == (" "):
print(" ")
return cipher
print (word)
print ("The encoded and decoded message is:")
print ("")
print ("Encoded message = ")
print (circularShift(word , 3))
print ("Decoded message = ")
print (circularShift(word , -3))
print ("")
input('Press ENTER to exit')

最佳答案

你需要仔细看看你的条件:

给定一个空格,ord(letter) + shift 将在 shifted 中存储一个 32+shift(当 shift 是 3)。即 < 65,因此添加了 26,在本例中为 61,而编号为 61 的字符恰好是 =

要解决此问题,请确保仅触摸 string.ascii_letters 中的字符,例如作为循环中的第一条语句:

import string

...
for letter in text:
if letter not in string.ascii_letters:
cipher += letter
continue
...

关于Python Caesar cipher ascii 添加空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47176548/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com