Cesar cipher печатает только первую букву - PullRequest
0 голосов
/ 15 января 2020

следующий код должен распечатать сдвинутый символ из текста, но он печатает только первую букву

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))

1 Ответ

1 голос
/ 15 января 2020

return немедленно возвращается из функции, заканчивая l oop. Вы хотите сдвинуть свой возврат на уровень отступа, чтобы он возвращался только после завершения l oop

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...