Advertisement
Guest User

Untitled

a guest
Feb 27th, 2020
274
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.47 KB | None | 0 0
  1. # Caesar Cipher
  2. SYMBOLS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
  3. MAX_KEY_SIZE = len(SYMBOLS)
  4.  
  5. def getMode():
  6.     while True:
  7.         print('Do you wish to encrypt or decrypt a message?')
  8.         mode = input().lower()
  9.         if mode in ['encrypt', 'e', 'decrypt', 'd']:
  10.             return mode
  11.         else:
  12.             print('Enter either "encrypt" or "e" or "decrypt" or "d".')
  13.  
  14. def getMessage():
  15.     print('Enter your message:')
  16.     return input()
  17.  
  18. def getKey():
  19.     key = 0
  20.     while True:
  21.         print('Enter the key number (1-%s)' % (MAX_KEY_SIZE))
  22.         key = int(input())
  23.         if (key >= 1 and key <= MAX_KEY_SIZE):
  24.             return key
  25.  
  26. def getTranslatedMessage(mode, message, key):
  27.     if mode[0] == 'd':
  28.         key = -key
  29.     translated = ''
  30.  
  31.     for symbol in message:
  32.         symbolIndex = SYMBOLS.find(symbol)
  33.         if symbolIndex == -1: # Symbol not found in SYMBOLS.
  34.             # Just add this symbol without any change.
  35.             translated += symbol
  36.         else:
  37.             # Encrypt or decrypt
  38.             symbolIndex += key
  39.  
  40.             if symbolIndex >= len(SYMBOLS):
  41.                 symbolIndex -= len(SYMBOLS)
  42.             elif symbolIndex < 0:
  43.                 symbolIndex += len(SYMBOLS)
  44.  
  45.             translated += SYMBOLS[symbolIndex]
  46.     return translated
  47.  
  48. mode = getMode()
  49. message = getMessage()
  50. key = getKey()
  51. print('Your translated text is:')
  52. print(getTranslatedMessage(mode, message, key))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement