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语句,因此循环只会运行一次。也许回报不应该在循环内?谢谢,巴德,这让我发疯了