我和我的朋友已经有一段时间像这样的“加密”对话了。程序的目标是获取加密消息并使其成为任何人都可以阅读的消息,反之亦然。 然而,如果我使用大写字母,它不会改变它们。 我怎么修理它
VOWELS = ["a", "e", "i", "o", "u"]
CONSONANTS = ["b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "q", "r", "s", "t", "v", "w", "x", "y", "z"]
def encrypt(message: str):
encryptedMessage = ""
for letter in message:
if letter in VOWELS:
newIndex = VOWELS.index(letter) + 1
if newIndex >= len(VOWELS):
newIndex = 0
encryptedMessage += VOWELS[newIndex]
elif letter in CONSONANTS:
newIndex = CONSONANTS.index(letter) + 1
if newIndex >= len(CONSONANTS):
newIndex = 0
encryptedMessage += CONSONANTS[newIndex]
else:
encryptedMessage += letter
return encryptedMessage
def decrypt(message: str):
decryptedMessage = ""
for letter in message:
if letter in VOWELS:
newIndex = VOWELS.index(letter) - 1
if newIndex >= len(VOWELS):
newIndex = 0
decryptedMessage += VOWELS[newIndex]
elif letter in CONSONANTS:
newIndex = CONSONANTS.index(letter) - 1
if newIndex >= len(CONSONANTS):
newIndex = 0
decryptedMessage += CONSONANTS[newIndex]
else:
decryptedMessage += letter
return decryptedMessage
def better_encryption(message: str, is_encrypt: bool):
newMessage = ""
ed = 1 if is_encrypt else -1
for letter in message:
if letter in VOWELS:
newIndex = VOWELS.index(letter) + ed
if newIndex >= len(VOWELS):
newIndex = 0
newMessage += VOWELS[newIndex]
elif letter in CONSONANTS:
newIndex = CONSONANTS.index(letter) + ed
if newIndex >= len(CONSONANTS):
newIndex = 0
newMessage += CONSONANTS[newIndex]
else:
newMessage += letter
return newMessage
def main():
while True:
command = str(input("[E]ncrypt or [D]ecrypt? "))
if "E" in command.upper() :
print(better_encryption(input("Message: "), True))
elif "D" in command.upper() :
print(better_encryption(input("Message: "), False))
else:
print("Invalid")
我还对您的代码进行了一些改进
您可以类似地更改
encrypt
和decrypt
在适当的地方使用一个简单的
letter = letter.lower()
应该可以实现您想要的功能:相关问题 更多 >
编程相关推荐