Python Цезарь Шифр - PullRequest
       9

Python Цезарь Шифр

0 голосов
/ 19 февраля 2020

Вы будете внедрять шифр смены. Этот тип кода сдвигает каждую букву на определенную величину.

Инструкции: завершите метод кодирования, чтобы он возвращал закодированное сообщение. Завершите метод decode, чтобы он возвращал декодированное сообщение. В основном методе - запрашивать у пользователя сообщение. - запросить у пользователя сумму сдвига.
- распечатать сообщение.
- вызвать кодирование с сообщением и суммой сдвига.
- сохранить закодированное сообщение, возвращенное из закодировать.
- напечатать закодированное сообщение.
- Отправьте закодированное сообщение и величину сдвига в метод декодирования.
- Распечатайте декодированное сообщение.

Советы: chr (ord ('A') + 5) даст вам «F» и chr (ord («F») - 5) даст вам «A». Вам нужно будет проверить и откорректировать время, когда сдвиг сдвинет вас с конца или начала алфавита. Например, как вы будете обращаться с «B» - 14? Самый простой способ проверить наличие заглавных или строчных букв - использовать «in». Обратитесь к демонстрации в классе. Помните, что вы можете сравнивать буквы с большим и меньшим. «A»> «B» будет False. Вы можете предположить, что знаков препинания нет (в большинстве кодов знаки препинания пропущены, чтобы не дать подсказки о закодированном сообщении). Вам не нужно изменять заглавные буквы. Убедитесь, что вы сохраняете места. (хотя реального шифра не будет) Вы можете проверить, работает ли ваша кодировка на этом веб-сайте. https://cryptii.com/pipes/caesar-cipher

Пример ввода / вывода: введите сообщение: Hello World Введите сдвиг: 10 Hello World Rovvy Gybvn Hello World

Мой код

  def encode(s, shiftamount):
      for x in range(0, s-1):
        if s[x] in "ABCDEFGHIJKLMNOPQRSTUVWXYZ":
          if chr(ord(x) + shiftamount) > Z : 
            print(chr(ord(s[x])) + (shiftamount - 25),end="") 

          if chr(ord(x) + shiftamount) <= Z :
            print(chr(ord(s[x])) + shiftamount,end="")

        if s[x] in "abcdefghijklmnopqrstuvwxyz":
          if chr(ord(x) + shiftamount) > Z : 
            print(chr(ord(s[x])) + (shiftamount - 25) ,end="") 

          if chr(ord(x) + shiftamount) <= Z :
            print(chr(ord(s[x])) + shiftamount,end="")

      print(chr(ord(s[x]) + shiftamount,end="")


    #def decode(s, shiftamount):

    def main():
      s = input("Enter the message:")
      shiftamount = input("Enter the shift")
      print(s)
      encode()
      decode()

    ########################################################################
    ###                Do not modify anything below here                 ###
    ########################################################################
    if __name__ == '__main__':
      main()

1 Ответ

0 голосов
/ 19 февраля 2020

Я думаю, что этот код может помочь вам

def encode(s, shiftamount): 
    for x in range(0, len(s)): 
        if s[x] in "ABCDEFGHIJKLMNOPQRSTUVWXYZ":
            if chr(ord(x) + shiftamount) > Z :
                print(chr(ord(s[x])) + (shiftamount - 25),end="") 
            if chr(ord(x) + shiftamount) <= Z : 
                print(chr(ord(s[x])) + shiftamount,end="") 
         if s[x] in "abcdefghijklmnopqrstuvwxyz": 
            if chr(ord(x) + shiftamount) > Z :
                print(chr(ord(s[x])) + (shiftamount - 25) ,end="") 
            if chr(ord(x) + shiftamount) <= Z :
                print(chr(ord(s[x])) + shiftamount,end="") 
                print(chr(ord(s[x]) + shiftamount,end="") 

def main(): 
    s = input("Enter the message:")
    shiftamount = int(input("Enter the shift"))
    print(s) 
    encode(s, shiftamount) 
...