<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    xylz,imxylz

    關注后端架構、中間件、分布式和并發編程

       :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      111 隨筆 :: 10 文章 :: 2680 評論 :: 0 Trackbacks

    7-10. Encryption. Using your solution to the previous problem, and create a "rot13" translator. "rot13" is an old and fairly simplistic encryption routine whereby each letter of the alphabet is rotated 13 characters. Letters in the first half of the alphabet will be rotated to the equivalent letter in the second half and vice versa, retaining case. For example, a goes to n and X goes to K. Obviously, numbers and symbols are immune from translation.

    (b) Add an application on top of your solution to prompt the user for strings to encrypt (and decrypt on reapplication of the algorithm), as in the following examples:

        % rot13.py
        Enter string to rot13: This is a short sentence.
        Your string to en/decrypt was: [This is a short
        sentence.].
        The rot13 string is: [Guvf vf n fubeg fragrapr.].
        %
        % rot13.py
        Enter string to rot13: Guvf vf n fubeg fragrapr.
        Your string to en/decrypt was: [Guvf vf n fubeg
        fragrapr.].
        The rot13 string is: [This is a short sentence.].
     

     1#!/usr/bin/env python
     2#-*- coding:utf-8 -*-
     3#$Id: p0710.py 153 2010-06-21 04:19:15Z xylz $
     4
     5'''
     6This is a 'python' study plan for xylz.
     7Copyright (C)2010 xylz (www.imxylz.info)
     8'''
     9
    10endic = None
    11if not endic:
    12    endic = {}
    13    import string
    14    for cc in (string.lowercase,string.uppercase):
    15        for i,c in enumerate(cc):
    16            if i<13: endic[c]=cc[i+13]
    17            else: endic[c]=cc[i-13]
    18
    19def encrypt_decrypt(s):
    20    ret=[]
    21    for c in s:
    22        ret.append(endic.get(c,c))
    23    return "".join(ret)
    24
    25if __name__ == '__main__':
    26    while True:
    27        my_input = raw_input('Enter string to rot13: ')
    28        if not my_input: break
    29        print "Your string to en/decrypt was: [",encrypt_decrypt(my_input),"]."
    30
    由于是對稱的,所以在14,15行中只需要遍歷一次所有大寫字母就可以拿到所有對應關系了,包括加密、解密。另外在22行里面用到了dict的get方法,這樣在非字母符號就可以保持原樣了。

    ©2009-2014 IMXYLZ |求賢若渴
    posted on 2010-06-21 12:25 imxylz 閱讀(17309) 評論(0)  編輯  收藏 所屬分類: Python

    ©2009-2014 IMXYLZ
    主站蜘蛛池模板: 免费无码作爱视频| 国产麻豆一精品一AV一免费| 亚洲中文字幕无码久久| 亚洲jizzjizz少妇| 一级免费黄色大片| 免费国产成人18在线观看| 国产亚洲?V无码?V男人的天堂| 亚洲av午夜福利精品一区| 91亚洲性爱在线视频| 亚洲另类无码一区二区三区| 国产一区二区三区免费观在线| 99国产精品免费视频观看| 大地资源在线观看免费高清| 国产男女猛烈无遮挡免费网站 | 最好看的中文字幕2019免费| 日本不卡高清中文字幕免费| 亚洲成AV人片在线观看WWW| 久久精品国产亚洲AV| 99精品视频免费在线观看| 亚洲美女中文字幕| 一级中文字幕乱码免费| 亚洲人成色777777在线观看 | 精品国产亚洲AV麻豆| 免费在线一级毛片| 亚洲熟妇丰满xxxxx| 免费吃奶摸下激烈视频| 视频免费在线观看| 亚洲综合亚洲综合网成人| 亚洲精品无播放器在线播放 | a在线免费观看视频| 亚洲欧洲精品久久| 国产亚洲精品成人久久网站| 野花高清在线电影观看免费视频 | 中文在线日本免费永久18近| 亚洲国产天堂久久综合网站| 国产精品美女久久久免费| 亚洲?v女人的天堂在线观看| 亚洲人成片在线观看| 免费在线不卡视频| 十九岁在线观看免费完整版电影| 亚洲国产精品无码久久一线|