Eree's Blog Eree's Blog

2016.4.24

in 流水账 read (1100) 文章转载请注明来源!

受大师兄之托,要求三日之日,入门Python。
带着一腔热血,在周五妄想着闭关两日,拿下Python。
然而发现这根本就是我的幻觉嘛!!!
没办法,答应别人了,也得硬着头皮上。
图书馆只能借到本基于2.5的教材,就这么硬着头皮啃了一个周末。。
果然 看教材都是苦恼的。(headfirst除外)
光看书肯定不够吧,总得上手码两下。
于是决定去下codewars小试身手。
然而刷了前几道就快哭出来了。
由于好多自带的函数都没记住。
导致别人一行的代码量,我要来个三四行。
各种嵌套循环码完,信心慢慢提交了答案,最后发现别人一行的代码量。
简直欲哭无泪有木有有木有啊!!!
没事,多刷几题类似的题目后,对于相近的函数也记得差不多了。
恩决定再来一提,恩好像是个凯撒密码的问题。
然后我又习惯性的写了一堆嵌套判断,信心满满的交了上去。

def encryptor(key, message):
    #Program me!
    new_str = ''
    for i in message:
        if i>='a'and i<='z':
            if key >= 0:
                i=ord(i)
                i = ((i + key)-97)%26+97
                i = chr(i)
            else:
                i = ord(i)
                i = 122-((122-(i+key))%26)
                i = chr(i)
            new_str = new_str + i
        elif i >='A' and i <='Z':
            if key >= 0:
                i = ord(i)
                i = ((i + key) - 65) % 26 + 65
                i = chr(i)
            else:
                i = ord(i)
                i = 90 - ((90 - (i + key)) % 26)
                i = chr(i)
            new_str = new_str + i
        else:
            new_str = new_str + i
    return new_str

提交后 看到第一名的答案

from string import maketrans as mt, ascii_lowercase as lc, ascii_uppercase as uc
def encryptor(key, message):
    key %= 26
    return message.translate(mt(lc+uc, lc[key:]+lc[:key]+uc[key:]+uc[:key]))

好吧可能这些函数我还没接触 恩不知道 原谅自己了
可是就算这几个和我类似的也远比我代码量少啊

def encryptor(key, message):
    #Program me!
    key  = key % 26
    result = ''
    for c in message:
        if c >= 'A' and c <= 'Z':
            result += chr(((ord(c) - ord('A')) + key) % 26 + ord('A'))
        elif c >= 'a' and c <= 'z':
            result += chr(((ord(c) - ord('a')) + key) % 26 + ord('a'))
        else:
            result += c
    return result
table = "".join(map(chr, range(65, 91))) * 2
table += table.lower()

def encryptor(key, message):
    key %= 26
    result = ""
    for c in message:
        if c in table:
            result += table[table.index(c) + key]
        else:
            result += c
    return result

丫的 简直太打击了。我还是好好再去看书吧
惯例一首曲子

本文基于《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
文章链接:https://ereebay.me/archives/92.html (转载时请注明本文出处及文章链接)

流水账
发表新评论
博客已萌萌哒运行
© 2019 由 Typecho 强力驱动.Theme by YoDu
PREVIOUS NEXT
雷姆
拉姆
音乐加载中...
0:00