为什么我的 python 代码不加密或解密我的消息
why does my python code not encrypt or decrypt my message
出于某种原因,当我 运行 最后的代码时,它只显示消息而没有加密或解密,我真的很困惑,如果这真的很明显,请不要讨厌我,我对 python 几乎不了解基础知识
#declare variables
NewWord =""
NewLetter = ""
SecretMessage = 0
mode = input("Please enter a mode: ").lower() #makes it lowercase
message = input("Please enter a message: ").lower() # lowercase to tackle capitals
while True:
try:
offset = int(input("Please enter a number: ")) #If no exception occurs, the except clause is skipped and execution of the try statement is finished.
break
except ValueError: #If exception occurs, the except clause continues printing not a valid number and letting you re-enter the offset and not just throwing up an error.
print ("Not a valid number")
#print(mode, message, offset) #Test to check user Input
for letter in message :
SecretMessage = ord(letter)
if mode == "Encrypt" :
SecretMessage += offset # add the offset to the letter
if mode == "Decrypt" :
SecretMessage -= offset # subtract the offset to the letter
if SecretMessage < 97:
SecretMessage += 26
if SecretMessage > 122:
SecretMessage -= 26
NewLetter = SecretMessage
NewLetter = chr(NewLetter)
# print(newLetter)# check conversion
NewWord += NewLetter
print(NewWord)
mode = input("Please enter a mode: ").lower()
使模式全部小写,以防止它等于 "Encrypt" 或 "Decrypt"。因此,您的 if
子句未执行。
您正在小写 mode
变量,所以它不可能等于 Encrypt
或 Decrypt
。您必须测试这些词的小写版本:
if mode == "encrypt" :
SecretMessage += offset # add the offset to the letter
if mode == "decrypt" :
SecretMessage -= offset # subtract the offset to the letter
出于某种原因,当我 运行 最后的代码时,它只显示消息而没有加密或解密,我真的很困惑,如果这真的很明显,请不要讨厌我,我对 python 几乎不了解基础知识
#declare variables
NewWord =""
NewLetter = ""
SecretMessage = 0
mode = input("Please enter a mode: ").lower() #makes it lowercase
message = input("Please enter a message: ").lower() # lowercase to tackle capitals
while True:
try:
offset = int(input("Please enter a number: ")) #If no exception occurs, the except clause is skipped and execution of the try statement is finished.
break
except ValueError: #If exception occurs, the except clause continues printing not a valid number and letting you re-enter the offset and not just throwing up an error.
print ("Not a valid number")
#print(mode, message, offset) #Test to check user Input
for letter in message :
SecretMessage = ord(letter)
if mode == "Encrypt" :
SecretMessage += offset # add the offset to the letter
if mode == "Decrypt" :
SecretMessage -= offset # subtract the offset to the letter
if SecretMessage < 97:
SecretMessage += 26
if SecretMessage > 122:
SecretMessage -= 26
NewLetter = SecretMessage
NewLetter = chr(NewLetter)
# print(newLetter)# check conversion
NewWord += NewLetter
print(NewWord)
mode = input("Please enter a mode: ").lower()
使模式全部小写,以防止它等于 "Encrypt" 或 "Decrypt"。因此,您的 if
子句未执行。
您正在小写 mode
变量,所以它不可能等于 Encrypt
或 Decrypt
。您必须测试这些词的小写版本:
if mode == "encrypt" :
SecretMessage += offset # add the offset to the letter
if mode == "decrypt" :
SecretMessage -= offset # subtract the offset to the letter