Python 塞萨尔密码只打印出第一个字母
下面的代码应该打印出文本中的移位字符,但它只打印出第一个字母Python 塞萨尔密码只打印出第一个字母,python,for-loop,Python,For Loop,下面的代码应该打印出文本中的移位字符,但它只打印出第一个字母 def encrypt(text,s): result = "" # transverse the plain text for i in range(len(text)): char = text[i] # Encrypt uppercase characters in plain text if (char.isupper()): result +
def encrypt(text,s):
result = ""
# transverse the plain text
for i in range(len(text)):
char = text[i]
# Encrypt uppercase characters in plain text
if (char.isupper()):
result += chr((ord(char) + s-65) % 26 + 65)
# Encrypt lowercase characters in plain text
else:
result += chr((ord(char) + s - 97) % 26 + 97)
return result
#check the above function
text = "CEASER CIPHER DEMO"
s = 4
print ("Plain Text : " + text)
print ("Shift pattern : " + str(s))
print ("Cipher: " + encrypt(text,s))
return立即从函数返回,结束循环。您希望将返回上移一个缩进级别,这样它只会在循环完成后返回encrypt中的for循环包含一个return语句,因此循环只会运行一次。也许回报不应该在循环内?谢谢,巴德,这让我发疯了