<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 閱讀(17304) 評論(0)  編輯  收藏 所屬分類: Python

    ©2009-2014 IMXYLZ
    主站蜘蛛池模板: 91免费国产在线观看| 国产亚洲免费的视频看| jjizz全部免费看片| sss日本免费完整版在线观看| 亚洲综合无码一区二区| 亚洲精品无码久久久久sm| 日韩视频免费一区二区三区| 日韩不卡免费视频| 久久99国产乱子伦精品免费| 中文字幕免费在线视频| 免费人成网上在线观看| 亚洲GV天堂GV无码男同| 国产精品亚洲精品观看不卡| 亚洲激情校园春色| 91亚洲国产成人久久精品| 亚洲综合综合在线| 亚洲综合久久成人69| 亚洲视频精品在线| 皇色在线免费视频| 久久免费99精品国产自在现线| 一个人看的hd免费视频| 国产黄色免费观看| 国产精品高清免费网站| 99在线免费观看| 免费精品无码AV片在线观看| 9277手机在线视频观看免费| 午夜精品射精入后重之免费观看| 成全高清在线观看免费| 特级无码毛片免费视频尤物| 1000部拍拍拍18勿入免费视频软件 | 在线观看国产情趣免费视频| 国产免费观看黄AV片| 国产亚洲人成A在线V网站| 亚洲日本一区二区三区在线| 亚洲精品无码不卡在线播HE | 国产日本亚洲一区二区三区| 亚洲精品GV天堂无码男同| 亚欧国产一级在线免费| 国偷自产一区二区免费视频| 中文字幕亚洲免费无线观看日本| 最近中文字幕mv免费高清视频7 |