我當前的代碼如下所示:
message = input("Message to be encrypted: ")
shift = int(input("Number to shift by: "))
def encrypt(message,shift):
encryption = ""
for i in range(len(message)):
char = message[i]
if (char.isupper()):
encryption = chr((ord(char) shift-65) % 26 65)
else:
encryption = chr((ord(char) shift - 97) % 26 97)
return encryption
print("Encrypted Text:",encrypt(message,shift))
而且我不太確定我的空格字符是作為 q 出現的,而不是字串中的普通“”。這是我開始編碼的前幾周,所以如果我忽略了一個簡單的錯誤,我深表歉意。
uj5u.com熱心網友回復:
要獲得預期結果,您應該在其他條件之前添加此條件:
if char == " ":
encryption = " "
continue
您沒有得到所需的輸出,因為當您在輸入字串中有一個空格并傳遞給char變數時,該空格不是大寫字母,因此您的代碼在else陳述句中正確。雖然它適用于字母,但不適用于其他特殊字符。因此,如問題標題中所述,如果您希望保留單詞之間的空格,只需在加密句子中添加空格即可。
但是,我的第一個建議僅適用于空間。如果您希望保留其他特殊字符(即 %、$、#、* 等),您應該使用:
if char.isalnum() == False:
encryption = char
continue
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/340412.html
標籤:Python
