这是一个学习 Python 的趣味网站,通过关卡的形式来锻炼 Python 水平。一共有 33 关,每一关都需要利用 Python 知识解题找到答案,然后进入下一关。很考验对 Python 的综合掌握能力,比如有的闯关需要用到正则表达式,有的要用到爬虫
一般情况下,我们学习 Python 都是按照章节顺序,比如从基本语法、基本数据类型、条件语句、循环语句、函数,面向对象等等来进行的,如果学习时间跨度过大,那么就很容易忘记前面的所学。此时正好可以拿这个网站来综合测试一下对 Python 的掌握情况,以便查缺补漏
下面我们来就来说一下这个网站怎么玩
get challenged
开始挑战text='''gfmncwmsbgblrrpylqjyrcgrzwfylb.rfyrqufyramknsrcpq
ypcdmp.bmglegrglzwfylbgqglcddgagclrylbrfyr'q
ufwrfgqrcvrgqqmjmle.sqgleqrpgle.kyicrpylq()
gqpcamkkclbcb.lmuynnjwmlrfcspj.'''
deftrans(text):
new_text=''
foriintext:
ifstr.isalpha(i):
n=ord(i)
ifi>='y':
n=ord(i)+2-26
else:
n=ord(i)+2
new_text+=chr(n)
else:
new_text+=i
print(new_text)
trans(text)
i hope you didnt translate it by hand. thats what computers are for.
doing it in by hand is inefficient and that's why this text is so long.
using string.maketrans() is recommended. now apply on the url.
trans("map")
ocr
importrequests
defget_challenge(s):
returnrequests.get('http://www.pythonchallenge.com/pc/'+s).text
text=get_challenge('def/ocr.html')
str=''.join(text)
importre
text=re.compile('<!--((?:[^-]+|-[^-]|--[^>])*)-->',re.S).findall(str)[-1]
counts={}
forcintext:counts[c]=counts.get(c,0)+1
print(counts)
{'\n': 1221, '%': 6104, '$': 6046, '@': 6157, '_': 6112, '^': 6030, '#': 6115, ')': 6186, '&': 6043, '!': 6079, '+': 6066, ']': 6152, '*': 6034, '}': 6105, '[': 6108, '(': 6154, '{': 6046, 'e': 1, 'q': 1, 'u': 1, 'a': 1, 'l': 1, 'i': 1, 't': 1, 'y': 1}
分享
点收藏
点点赞
点在看
文章转发自AI科技大本营微信公众号,版权归其所有。文章内容不代表本站立场和任何投资暗示。
Copyright © 2021.Company 元宇宙YITB.COM All rights reserved.元宇宙YITB.COM