<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
    主站蜘蛛池模板: 亚洲午夜精品一区二区公牛电影院| 亚洲第一区精品观看| 国产aⅴ无码专区亚洲av| 一个人免费观看www视频| 亚洲国产成人久久综合碰| 一级做a爰黑人又硬又粗免费看51社区国产精品视 | 亚洲婷婷天堂在线综合| 亚洲一级毛片免费在线观看| 亚洲福利视频网站| 在线观看的免费网站| 亚洲精品国产精品| 免费人成在线观看网站品爱网日本| 亚洲av无码专区在线电影天堂| 亚洲国产成人久久一区WWW| 你懂的免费在线观看| 久久久久久亚洲精品中文字幕| 99re免费在线视频| 亚洲H在线播放在线观看H| 午夜小视频免费观看| 免费大片av手机看片| 亚洲高清国产AV拍精品青青草原| 久久香蕉国产线看免费| 亚洲三级在线播放| 男女交性永久免费视频播放| 九九免费精品视频在这里 | 亚洲免费观看视频| 97在线视频免费播放| 亚洲人成网站在线播放2019 | 久久香蕉国产线看免费| 亚洲一级视频在线观看| 免费一级毛片在线观看| 久久午夜夜伦鲁鲁片无码免费| 亚洲中文字幕无码av在线| 免费萌白酱国产一区二区| 国产啪精品视频网站免费尤物| 91亚洲性爱在线视频| 亚洲第一福利网站在线观看| 91视频免费网址| 国产精品自拍亚洲| 色噜噜综合亚洲av中文无码| 免费人成激情视频|