Advertisement
Guest User

Untitled

a guest
Dec 22nd, 2014
271
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.44 KB | None | 0 0
  1. input = "THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG, THEN THE LAZY DOG ROLLS UNDER THE QUICK BROWN FOX.WHO LIKES THIS DOG I WONDER?"
  2.  
  3. #encoding
  4.  
  5. for number in range(1,27):
  6.     letter = chr(number + 64)
  7.     transposition = number
  8.     input = input[transposition:] + input[:transposition]
  9.     c_pos = len(input) - 1
  10.     while c_pos >= 0:
  11.         if input[c_pos] == letter:
  12.             if c_pos + number >= len(input):
  13.                 output = input[:(c_pos+number+1) % len(input)] + letter.lower() + input[(c_pos+number+1) % len(input):c_pos] + input[c_pos+1:]
  14.             else:
  15.                 output = input[:c_pos] + input[c_pos+1:c_pos+number+1] + letter.lower() + input[c_pos+number+1:]
  16.             input = output
  17.         else:
  18.             c_pos -= 1
  19.     input = input[len(input) - transposition:] + input[:len(input) - transposition]
  20.     print input + "\n"
  21.  
  22. #decoding
  23.  
  24. for number in range(26,0,-1):
  25.     letter = chr(number + 96)
  26.     transposition = number
  27.     input = input[len(input) - transposition:] + input[:len(input) - transposition]
  28.     number = len(input) - number - 1
  29.     c_pos = 0
  30.     while c_pos <= len(input) - 1:
  31.         if input[c_pos] == letter:
  32.             if c_pos + number >= len(input):
  33.                 output = input[:(c_pos+number+1) % len(input)] + letter.upper() + input[(c_pos+number+1) % len(input):c_pos] + input[c_pos+1:]
  34.             else:
  35.                 output = input[:c_pos] + input[c_pos+1:c_pos+number+1] + letter.upper() + input[c_pos+number+1:]
  36.             input = output
  37.         else:
  38.             c_pos += 1
  39.     input = input[transposition:] + input[:transposition]
  40.     print input + "\n"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement