HACK80 首页  立即注册  登录
现在注册
已注册用户请  登录
HACK80    技术文档

python代码段

  •   EvilGod ·2017-12-5 17:11:26·351 次点击 ·阅读模式     

    马上注册,加入HACK80!与我们一起交流。

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    凯撒加密,摩斯电码,栅栏密码,base家族混合编解码。。。

    栅栏密码加解密单行版本
    1. railFence = lambda s: [[i, ''.join([s[k * i + j] for j in range(i) for k in range(len(s) / i)])] for i in range(1, len(s)) if not len(s) % i]
    2. print railFence('hello world , 2017 ! ')
    复制代码

    正常版本
    1. def railFence(s):
    2.     ll = len(s)
    3.     res = dict()
    4.     for i in range(1, ll):
    5.         r = ''
    6.         if ll % i == 0:
    7.             for j in range(i):
    8.                 for k in range(ll / i):
    9.                     r += s[k * i + j]
    10.             res[i] = r
    11.     return res
    12. # test
    13. print railFence('hello world , 2017 ! ')
    14. # {1: 'hello world , 2017 ! ', 3: 'hlwl,0 eood 1!l r 27 ', 7: 'ho2er0ll1ld7o   ,!w  '}
    复制代码

    凯撒密码加解密单行版本
    1. def caesar(s): return [[off, ''.join([chr((ord(i) - 97 + off) % 26 + 97) if 'a' <= i <= 'z' else chr((ord(i) - 65 + off) % 26 + 65) if 'A' <= i <= 'Z' else i for i in str(s)])] for off in range(26)]
    2. print caesar('h3llo')
    复制代码

    正常版本
    1. def caesar(s):
    2.     cycle = 26
    3.     res = []
    4.     for offset in range(26):
    5.         r = ''
    6.         for i in str(s):
    7.             if 'a' <= i <= 'z':
    8.                 r += chr((ord(i) - ord('a') + offset) % cycle + ord('a'))
    9.             elif 'A' <= i <= 'Z':
    10.                 r += chr((ord(i) - ord('A') + offset) % cycle + ord('A'))
    11.             else:
    12.                 r += i
    13.         res.append([offset, r])
    14.     return res
    15. # test
    16. print caesar('h3llo')
    17. #[  [0, 'h3llo'], [1, 'i3mmp'], [2, 'j3nnq'], [3, 'k3oor'], [4, 'l3pps'], [5, 'm3qqt'], [6, 'n3rru'], [7, 'o3ssv'],
    18. #   [8, 'p3ttw'], [9, 'q3uux'], [10, 'r3vvy'], [11, 's3wwz'], [12, 't3xxa'], [13, 'u3yyb'], [14, 'v3zzc'],
    19. #   [15, 'w3aad'], [16, 'x3bbe'], [17, 'y3ccf'], [18, 'z3ddg'], [19, 'a3eeh'], [20, 'b3ffi'], [21, 'c3ggj'],
    20. #   [22, 'd3hhk'], [23, 'e3iil'], [24, 'f3jjm'], [25, 'g3kkn']]
    复制代码

    莫尔斯电码加解密
    1. # by https://findneo.github.io/
    2. import re
    3. def morse(s):
    4.     morseChart = ['.-',       '-...',     '-.-.',     '-..',      '.',        '..-.',     '--.',
    5.                   '....',     '..',       '.---',     '-.-',      '.-..',     '--',       '-.',
    6.                   '---',      '.--.',     '--.-',     '.-.',      '...',      '-',        '..-',
    7.                   '...-',     '.--',      '-..-',     '-.--',     '--..',     '-----',    '.----',
    8.                   '..---',    '...--',    '....-',    '.....',    '-....',    '--...',    '---..',
    9.                   '----.',    '.-.-.-',   '--..--',   '..--..',   '-....-',   '.----.',   '---...',
    10.                   '.-..-.',   '-..-.',    '.--.-.',   '-.-.-.',   '-...-',    '-.-.--',   '..--.-',
    11.                   '-.--.',    '-.--.-',   '...-..-',  '.-...',    '.-.-.',    ' ',        '*'
    12.                   ]
    13.     alphaChart = ['a',        'b',        'c',        'd',        'e',        'f',        'g',
    14.                   'h',        'i',        'j',        'k',        'l',        'm',        'n',
    15.                   'o',        'p',        'q',        'r',        's',        't',        'u',
    16.                   'v',        'w',        'x',        'y',        'z',        '0',        '1',
    17.                   '2',        '3',        '4',        '5',        '6',        '7',        '8',
    18.                   '9',        '.',        ',',        '?',        '-',        "'",        ':',
    19.                   '"',        '/',        '@',        ';',        '=',        '!',        '_',
    20.                   '(',        ')',        '
    21. [b]base64混合编码[/b][code]from base64 import *
    22. import random
    23. def baseRandomEncode(s, depth=3):
    24.     for i in xrange(depth):
    25.         s = random.choice([b64encode, b32encode, b16encode])(s)
    26.     return s
    27. print baseRandomEncode('hello world!')  # test
    复制代码

    base64混合解码
    1. # by https://findneo.github.io/
    2. from base64 import *
    3. import re
    4. res = []
    5. # repattern is a self-defining item.
    6. # In CTF games,flag often comes as a printable string containing  '{' and '}'.
    7. repattern = "[ -~]*{[ -~]*}[ -~]*|[ -~]*}[ -~]*{[ -~]*"
    8. def basefuzzDecode(s):
    9.     global res
    10.     for f in [b64decode, b32decode, b16decode]:
    11.         try:
    12.             t = f(s)
    13.             if re.match(repattern, t):
    14.                 res.append(t)
    15.                 return 0
    16.             else:
    17.                 basefuzzDecode(t)
    18.         except:
    19.             pass
    20.     return res
    21. print basefuzzDecode(baseRandomEncode('flag{hello ctf!}'))  # test
    复制代码
    1. 本文链接: https://findneo.github.io/2017/10/python-snippets/
    复制代码

    ,        '&',        '+',        ' ',        '#'
                      ]
        # or as a dict ->  {c[1]: c[0] for i in xrange(len(c[0]))}
        c = [morseChart, alphaChart]
        s = s.lower()
        # replace characters not in alphaChart with '#' ,which shall be '*' in
        # encoded string
        s = re.sub('[^a-z0-9.,?\-\':"/@;=!_()
    1. # by https://findneo.github.io/
    2. import re
    3. def morse(s):
    4. &nbsp;&nbsp;&nbsp; morseChart = ['.-',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '-...',&nbsp;&nbsp;&nbsp;&nbsp; '-.-.',&nbsp;&nbsp;&nbsp;&nbsp; '-..',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '.',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '..-.',&nbsp;&nbsp;&nbsp;&nbsp; '--.',
    5. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '....',&nbsp;&nbsp;&nbsp;&nbsp; '..',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '.---',&nbsp;&nbsp;&nbsp;&nbsp; '-.-',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '.-..',&nbsp;&nbsp;&nbsp;&nbsp; '--',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '-.',
    6. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '---',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '.--.',&nbsp;&nbsp;&nbsp;&nbsp; '--.-',&nbsp;&nbsp;&nbsp;&nbsp; '.-.',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '...',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '-',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '..-',
    7. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '...-',&nbsp;&nbsp;&nbsp;&nbsp; '.--',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '-..-',&nbsp;&nbsp;&nbsp;&nbsp; '-.--',&nbsp;&nbsp;&nbsp;&nbsp; '--..',&nbsp;&nbsp;&nbsp;&nbsp; '-----',&nbsp;&nbsp;&nbsp; '.----',
    8. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '..---',&nbsp;&nbsp;&nbsp; '...--',&nbsp;&nbsp;&nbsp; '....-',&nbsp;&nbsp;&nbsp; '.....',&nbsp;&nbsp;&nbsp; '-....',&nbsp;&nbsp;&nbsp; '--...',&nbsp;&nbsp;&nbsp; '---..',
    9. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '----.',&nbsp;&nbsp;&nbsp; '.-.-.-',&nbsp;&nbsp; '--..--',&nbsp;&nbsp; '..--..',&nbsp;&nbsp; '-....-',&nbsp;&nbsp; '.----.',&nbsp;&nbsp; '---...',
    10. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '.-..-.',&nbsp;&nbsp; '-..-.',&nbsp;&nbsp;&nbsp; '.--.-.',&nbsp;&nbsp; '-.-.-.',&nbsp;&nbsp; '-...-',&nbsp;&nbsp;&nbsp; '-.-.--',&nbsp;&nbsp; '..--.-',
    11. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '-.--.',&nbsp;&nbsp;&nbsp; '-.--.-',&nbsp;&nbsp; '...-..-',&nbsp; '.-...',&nbsp;&nbsp;&nbsp; '.-.-.',&nbsp;&nbsp;&nbsp; ' ',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '*'
    12. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ]
    13. &nbsp;&nbsp;&nbsp; alphaChart = ['a',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'b',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'c',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'd',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'e',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'f',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'g',
    14. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'h',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'i',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'j',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'k',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'l',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'm',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'n',
    15. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'o',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'p',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'q',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'r',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 's',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 't',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'u',
    16. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'v',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'w',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'x',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'y',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'z',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '0',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '1',
    17. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '2',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '3',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '4',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '5',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '6',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '7',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '8',
    18. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '9',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '.',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ',',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '?',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '-',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "'",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ':',
    19. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '"',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '/',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '@',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ';',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '=',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '!',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '_',
    20. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '(',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ')',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'amp;+ ]', '#', s)
    21.     # for convenience sake, I choose not to deal with space in morse.
    22.     s = re.sub('\s+', ' ', s)
    23.     m = 1  # default to decode
    24.     # if mot mismatch that condition,we are to encode.
    25.     if not re.match('[^-._ ]', s):
    26.         # occasionally we meet [ ._]+ instead of [ .-]+
    27.         s = s.replace('_', '-')
    28.         s = re.split(' ', s)
    29.         m = 0  # we are  to encode by morse
    30.     r = []
    31.     # list().extend(foo) returns None so we use 'or r'
    32.     return (m * ' ').join(r.extend([c[1 - m][c[m].index(i)] for i in s]) or r)
    33. # test
    34. print morse('Hello word,2017!')
    35. print morse('.... . .-.. .-.. ---   .-- --- .-. -.. --..-- ..--- ----- .---- --... -.-.--')
    复制代码

    base64混合编码
    1. from base64 import *
    2. import random
    3. def baseRandomEncode(s, depth=3):
    4. &nbsp;&nbsp;&nbsp; for i in xrange(depth):
    5. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s = random.choice([b64encode, b32encode, b16encode])(s)
    6. &nbsp;&nbsp;&nbsp; return s
    7. print baseRandomEncode('hello world!')&nbsp; # test
    复制代码

    base64混合解码
    1. # by https://findneo.github.io/
    2. from base64 import *
    3. import re
    4. res = []
    5. # repattern is a self-defining item.
    6. # In CTF games,flag often comes as a printable string containing&nbsp; '{' and '}'.
    7. repattern = "[ -~]*{[ -~]*}[ -~]*|[ -~]*}[ -~]*{[ -~]*"
    8. def basefuzzDecode(s):
    9. &nbsp;&nbsp;&nbsp; global res
    10. &nbsp;&nbsp;&nbsp; for f in [b64decode, b32decode, b16decode]:
    11. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try:
    12. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t = f(s)
    13. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if re.match(repattern, t):
    14. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; res.append(t)
    15. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0
    16. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else:
    17. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; basefuzzDecode(t)
    18. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; except:
    19. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pass
    20. &nbsp;&nbsp;&nbsp; return res
    21. print basefuzzDecode(baseRandomEncode('flag{hello ctf!}'))&nbsp; # test
    复制代码
    1. &nbsp;本文链接: https://findneo.github.io/2017/10/python-snippets/
    复制代码

    ,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '&amp;',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '+',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' ',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '#'
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ]
    &nbsp;&nbsp;&nbsp; # or as a dict -&gt;&nbsp; {c[1]: c[0] for i in xrange(len(c[0]))}
    &nbsp;&nbsp;&nbsp; c = [morseChart, alphaChart]
    &nbsp;&nbsp;&nbsp; s = s.lower()
    &nbsp;&nbsp;&nbsp; # replace characters not in alphaChart with '#' ,which shall be '*' in
    &nbsp;&nbsp;&nbsp; # encoded string
    &nbsp;&nbsp;&nbsp; s = re.sub('[^a-z0-9.,?\-\':"/@;=!_()[        DISCUZ_CODE_38        ]amp;+ ]', '#', s)
    &nbsp;&nbsp;&nbsp; # for convenience sake, I choose not to deal with space in morse.
    &nbsp;&nbsp;&nbsp; s = re.sub('\s+', ' ', s)
    &nbsp;&nbsp;&nbsp; m = 1&nbsp; # default to decode
    &nbsp;&nbsp;&nbsp; # if mot mismatch that condition,we are to encode.
    &nbsp;&nbsp;&nbsp; if not re.match('[^-._ ]', s):
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # occasionally we meet [ ._]+ instead of [ .-]+
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s = s.replace('_', '-')
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s = re.split(' ', s)
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m = 0&nbsp; # we are&nbsp; to encode by morse
    &nbsp;&nbsp;&nbsp; r = []
    &nbsp;&nbsp;&nbsp; # list().extend(foo) returns None so we use 'or r'
    &nbsp;&nbsp;&nbsp; return (m * ' ').join(r.extend([c[1 - m][c[m].index(i)] for i in s]) or r)
    # test
    print morse('Hello word,2017!')
    print morse('.... . .-.. .-.. ---&nbsp;&nbsp; .-- --- .-. -.. --..-- ..--- ----- .---- --... -.-.--')
    [/code]amp;+ ]', '#', s)
        # for convenience sake, I choose not to deal with space in morse.
        s = re.sub('\s+', ' ', s)
        m = 1  # default to decode
        # if mot mismatch that condition,we are to encode.
        if not re.match('[^-._ ]', s):
            # occasionally we meet [ ._]+ instead of [ .-]+
            s = s.replace('_', '-')
            s = re.split(' ', s)
            m = 0  # we are  to encode by morse
        r = []
        # list().extend(foo) returns None so we use 'or r'
        return (m * ' ').join(r.extend([c[1 - m][c[m].index(i)] for i in s]) or r)
    # test
    print morse('Hello word,2017!')
    print morse('.... . .-.. .-.. ---   .-- --- .-. -.. --..-- ..--- ----- .---- --... -.-.--')
    [/code]
    base64混合编码[        DISCUZ_CODE_39        ]
    base64混合解码[        DISCUZ_CODE_40        ]
    [        DISCUZ_CODE_41        ]
    351 次点击  
    收藏  转播  分享
    添加一条新回复
    您需要登录后才可以回帖 登录 | 立即注册

    本节点积分规则
    QQ
    小黑屋   ·   手机版   ·   225 人在线 最高记录 5500   ·   TOP
    我们很年轻,但我们有信念、有梦想!

      我们坚信只有今天付出了,才有机会看到明天的太阳!现在!加入我们,给你一个气氛优秀的技术圈子。  
    GMT+8, 2018-7-17 13:23, Processed in 0.048157 second(s), 18 queries .