# simple_ciphers.py

# Substitution

import string

smap = string.maketrans('ABCDEFGHIJKLMNOPQRSTUVWXYZ',
                        'dlryvohezxwptbgfjqnmuskaci')

ctext = 'MGZVYZLGHCMHJMYXSSFMNHAHYCDLMHA'

ptext = ctext.translate(smap)

# problem 1.5
ctext = 'BEEAKFYDJXUQYHYJIQRYHTYJIQFBQDUYJIIKFUHCQD'

def decrypt(ctextshift=0):
    '''
>>> for n in range(26): decrypt(ctext, n)

(0, 'BEEAKFYDJXUQYHYJIQRYHTYJIQFBQDUYJIIKFUHCQD')
(1, 'ADDZJEXCIWTPXGXIHPQXGSXIHPEAPCTXIHHJETGBPC')
(2, 'ZCCYIDWBHVSOWFWHGOPWFRWHGODZOBSWHGGIDSFAOB')
(3, 'YBBXHCVAGURNVEVGFNOVEQVGFNCYNARVGFFHCREZNA')
(4, 'XAAWGBUZFTQMUDUFEMNUDPUFEMBXMZQUFEEGBQDYMZ')
(5, 'WZZVFATYESPLTCTEDLMTCOTEDLAWLYPTEDDFAPCXLY')
(6, 'VYYUEZSXDROKSBSDCKLSBNSDCKZVKXOSDCCEZOBWKX')
(7, 'UXXTDYRWCQNJRARCBJKRAMRCBJYUJWNRCBBDYNAVJW')
(8, 'TWWSCXQVBPMIQZQBAIJQZLQBAIXTIVMQBAACXMZUIV')
(9, 'SVVRBWPUAOLHPYPAZHIPYKPAZHWSHULPAZZBWLYTHU')
(10, 'RUUQAVOTZNKGOXOZYGHOXJOZYGVRGTKOZYYAVKXSGT')
(11, 'QTTPZUNSYMJFNWNYXFGNWINYXFUQFSJNYXXZUJWRFS')
(12, 'PSSOYTMRXLIEMVMXWEFMVHMXWETPERIMXWWYTIVQER')
(13, 'ORRNXSLQWKHDLULWVDELUGLWVDSODQHLWVVXSHUPDQ')
(14, 'NQQMWRKPVJGCKTKVUCDKTFKVUCRNCPGKVUUWRGTOCP')
(15, 'MPPLVQJOUIFBJSJUTBCJSEJUTBQMBOFJUTTVQFSNBO')
(16, 'LOOKUPINTHEAIRITSABIRDITSAPLANEITSSUPERMAN')   # looks like English
(17, 'KNNJTOHMSGDZHQHSRZAHQCHSRZOKZMDHSRRTODQLZM')
(18, 'JMMISNGLRFCYGPGRQYZGPBGRQYNJYLCGRQQSNCPKYL')
(19, 'ILLHRMFKQEBXFOFQPXYFOAFQPXMIXKBFQPPRMBOJXK')
(20, 'HKKGQLEJPDAWENEPOWXENZEPOWLHWJAEPOOQLANIWJ')
(21, 'GJJFPKDIOCZVDMDONVWDMYDONVKGVIZDONNPKZMHVI')
(22, 'FIIEOJCHNBYUCLCNMUVCLXCNMUJFUHYCNMMOJYLGUH')
(23, 'EHHDNIBGMAXTBKBMLTUBKWBMLTIETGXBMLLNIXKFTG')
(24, 'DGGCMHAFLZWSAJALKSTAJVALKSHDSFWALKKMHWJESF')
(25, 'CFFBLGZEKYVRZIZKJRSZIUZKJRGCREVZKJJLGVIDRE')
'''
    ptext = ''
    for c in ctext:
        nc = ord(c) - 65
        np = (nc - shift) % 26
        ptext += chr(np + 65)
        
    return nptext