<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
    主站蜘蛛池模板: 亚洲午夜未满十八勿入网站2| 国产精品久久久久影院免费| 激情五月亚洲色图| 亚洲成av人片天堂网老年人| 99免费在线观看视频| 日本亚洲色大成网站www久久| 亚洲AV日韩AV永久无码绿巨人 | 亚洲成av人片一区二区三区| 亚洲毛片在线免费观看| 永久免费无码日韩视频| 极品色天使在线婷婷天堂亚洲| 亚洲一区精品视频在线| 久久久久亚洲av无码专区导航| 久久亚洲伊人中字综合精品| 婷婷亚洲天堂影院| 亚洲国产中文字幕在线观看| 免费大黄网站在线观看| 国产美女无遮挡免费网站| 日本一道综合久久aⅴ免费| 在线免费观看视频你懂的| 免费亚洲视频在线观看| 亚洲精品成a人在线观看| 亚洲中文字幕在线观看| 亚洲av无码成h人动漫无遮挡 | 日韩精品在线免费观看| 四虎成人精品永久免费AV| 亚欧色视频在线观看免费| 在线观看www日本免费网站| 欧美三级在线电影免费| 曰皮全部过程视频免费国产30分钟 | 成年丰满熟妇午夜免费视频| 在线视频观看免费视频18| 日本免费网站在线观看| 亚洲精品无码成人AAA片| 久久狠狠高潮亚洲精品| 亚洲大尺度无码无码专线一区| 一个人看的免费视频www在线高清动漫 | 中文日韩亚洲欧美制服| 国产美女视频免费观看的网站 | 国产猛男猛女超爽免费视频| 最近最好的中文字幕2019免费|