<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免费毛片| 欧洲人免费视频网站在线| 18禁亚洲深夜福利人口| fc2成年免费共享视频18| 免费国产美女爽到喷出水来视频| 亚洲精品无码av人在线观看| 亚洲熟妇少妇任你躁在线观看| 国产成人精品免费大全| 亚洲AV无码乱码精品国产| 粉色视频免费入口| 亚洲美女在线国产| a在线观看免费网址大全| 亚洲AV无码一区二区乱孑伦AS| 亚洲一卡一卡二新区无人区| 男女啪啪永久免费观看网站| 国产精品亚洲专区无码牛牛 | 亚洲色大成网站www尤物| 白白国产永久免费视频| 杨幂最新免费特级毛片| 中文亚洲成a人片在线观看| 国产午夜精品免费一区二区三区 | 91精品国产免费| 亚洲最大中文字幕| 日韩精品视频免费网址| 丁香六月婷婷精品免费观看| 亚洲AV中文无码字幕色三| 四虎精品免费永久免费视频| 亚洲高清专区日韩精品| 久久受www免费人成_看片中文| 久久亚洲私人国产精品vA| 国产午夜免费高清久久影院| 亚洲一区欧洲一区| 亚洲视频人成在线播放| **毛片免费观看久久精品| 亚洲成AV人片高潮喷水| 亚洲精品无码永久在线观看你懂的| 成人久久久观看免费毛片| 国产免费资源高清小视频在线观看| 亚洲日本国产综合高清| 亚洲线精品一区二区三区影音先锋| 一级毛片人与动免费观看|