介绍一个打怪升级练习 Python 的网站,寓教于乐~

news/2024/5/19 13:56:14/文章来源:https://blog.csdn.net/dQCFKyQDXYm3F8rB0/article/details/122694161

3a511a66c6b0068873c2129ce35fade2.gif

作者 | 周萝卜

来源 | 萝卜大杂烩

这是一个学习 Python 的趣味网站,通过关卡的形式来锻炼 Python 水平。一共有 33 关,每一关都需要利用 Python 知识解题找到答案,然后进入下一关。很考验对 Python 的综合掌握能力,比如有的闯关需要用到正则表达式,有的要用到爬虫

一般情况下,我们学习 Python 都是按照章节顺序,比如从基本语法、基本数据类型、条件语句、循环语句、函数,面向对象等等来进行的,如果学习时间跨度过大,那么就很容易忘记前面的所学。此时正好可以拿这个网站来综合测试一下对 Python 的掌握情况,以便查缺补漏

下面我们来就来说一下这个网站怎么玩

4bfeb60456757f73db2d6cfd0bba580c.png

可以看到进入网站主页面,映入眼帘的就是一个很有年代感的画面,看来是一个年代比较久远的网站了,但是可千万不要因为网站建立的时间长就小瞧它哦!

接下来我们点击get challenged开始挑战

第0关,古香古色,哈哈哈,是让我们根据2的38次方来更改 url,这应该就算是热身运动吧,我们直接通过 Python 计算一下即可

eae92638b306f0cf2f934a34ef608f3c.png

把计算的结果替换 url 中的0就可以进入到下一关了

接下来就是正式的关卡了,我们的游戏也正式开始!

93a56ac1ca680f484cc7c1fa01e3b4b0.png

根据图片中的字母以及下方的提示,我们可以得出:前面的字母往后移动两位就是后面的字母

然后根据这个规律,重新计算最下方的一串字符

这里考察了 Python 当中字符串编码的相关知识

text = '''g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpqypc dmp. bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'qufw rfgq rcvr gq qm jmle. sqgle qrpgle.kyicrpylq()gq pcamkkclbcb. lmu ynnjw ml rfc spj.'''def trans(text):new_text = ''for i in text:if str.isalpha(i):n = ord(i)if i >= 'y':n = ord(i) + 2 - 26else:n = ord(i) + 2new_text += chr(n)else:new_text += iprint(new_text)trans(text)

Output:

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.

可以看到网站的作者还是蛮幽默的,哈哈哈,不要手动翻译~

接下来我们再次调用函数,传入“map”就可以拿到新的 url 了

trans("map")

Output:

ocr

此时我们把 url 中的 map 替换为 ocr 就可以进入下一关

17797a16754ddf0bcad07fce236e7bc1.png

提示说可能在书里,哈哈哈,这是要看瞎的节奏,也可能在网页源代码里。我们通过右键查看源代码往下拉看到绿色区域

9fa2b5fa7fd32497ad449bcd62e0f67d.png

看到一行提示:find rare characters in the mess below

意思就是要在下面这一大串字符里找到出现次数最少的几个字符

我们先使用 request 请求网页,然后通过正则表达式来获取字符

import requests
def get_challenge(s):return requests.get('http://www.pythonchallenge.com/pc/' + s).texttext = get_challenge('def/ocr.html')
str = ''.join(text)
import re
text = re.compile('<!--((?:[^-]+|-[^-]|--[^>])*)-->', re.S).findall(str)[-1]
counts = {}
for c in text: counts[c] = counts.get(c, 0) + 1
print(counts)

Output:

{'\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}

可以看到出现次数最少的就是最后几个字符,合起来是「equality」,替换 url 字符 ocr 就可以进入下一关了

b5088c3df2b7c628824c8d69018d7f55.png

好了,是不是挺有意思的,我们就不再继续剧透了,感兴趣的小伙伴可以自行探索,对于巩固 Python 基础知识还是非常有帮助的!

网站地址:http://www.pythonchallenge.com/

官方参考:https://garethrees.org/2007/05/07/python-challenge/

607d87251f1da89d5e994bbdceccee71.gif

技术

100行python代码制作鞭炮

资讯

算力超越iPhone,芯片堪比Mac

技术

31个好用的Python字符串方法

资讯

游戏圈地震级消息,微软收购动视暴雪

160dfcb123773225027a286aa262c2ee.png

分享

a52db4ed308aa53a6b5b161161ee21d0.png

点收藏

a92a990dcce5163f57968a33579863a2.png

点点赞

82735f2818efe32bffbacb8507fc97c7.png

点在看

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_700852.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

有用的编程相关网站

1.代码可视化网站&#xff1a;http://www.pythontutor.com 转载于:https://www.cnblogs.com/fuqia/p/9074571.html

上线仅两天,AI大模型写论文网站光速下架:不负责任的胡编乱造

视学算法报道编辑&#xff1a;陈萍、小舟Galactica&#xff1a;「假装自己是个科学家。」几天前&#xff0c;Meta AI 联合 Papers with Code 发布了大型语言模型 Galactica&#xff0c;该模型的一大特点就是解放你的双手&#xff0c;代笔帮你写论文&#xff0c;写的论文有多完整…

如何利用Gephi可视化浏览的网站关系

Gephi 是进行数据可视化的一套开源工具。其利用图&#xff08;有向图、无向图、动态图等&#xff09;的形式来展现数据&#xff0c;方便我们对数据进行探索。今天给大家介绍利用 Gephi 来可视化我们浏览网站之间关系。 首先&#xff0c;安装 Gephi 的 Http 代理插件 HttpGraph…

如何利用 C# 爬取带 Token 验证的网站数据?

在对文本数据的情感分析中&#xff0c;基于情感词典的方法是最简单也是最常用的一种了。 它的大体思路如下&#xff1a; 对文档分词&#xff0c;找出文档中的情感词、否定词以及程度副词&#xff0c;然后判断每个情感词之前是否有否定词及程度副词&#xff0c;将它之前的否定…

京东一面,面试官问我如何用 Nginx 禁止国外 IP 访问网站,我直接凉凉!

欢迎关注方志朋的博客&#xff0c;回复”666“获面试宝典来源&#xff1a;toutiao.com/i6860736292339057156/之前看了下 Nginx 的访问日志&#xff0c;发现每天有好多国外的 IP 地址来访问我的网站&#xff0c;并且访问的内容基本上都是恶意的。因此我决定禁止国外 IP 来访问我…

在Red Hat Linux5下构建LAMP网站服务平台之MySQL、PHP的安装与配置

在Red Hat Linux5下构建LAMP网站服务平台之MySQL、PHP的安装与配置 2010-09-09 16:40:49标签&#xff1a;PHP Linux mysql RedHat    [推送到技术圈] 版权声明&#xff1a;原创作品&#xff0c;允许转载&#xff0c;转载时请务必以超链接形式标明文章 原始出处 、作者信息和…

基于SpringBoot+MyBatis+Vue的音乐网站

欢迎关注方志朋的博客&#xff0c;回复”666“获面试宝典项目说明 本音乐网站的客户端和管理端使用 Vue 框架来实现&#xff0c;服务端使用 Spring Boot MyBatis 来实现&#xff0c;数据库使用了 MySQL。实现思路可以看这里&#xff1a;https://yin-hongwei.github.io/2019/03…

网站速度优化模块HttpCompressionModule

为了优化网站的访问速度&#xff0c;准备采用HttpCompressionModule 6对传输数据进行压缩&#xff0c;下载了HttpCompressionModule 6 , 并按照示例程序中的web.config配置了网站的web.config。<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:offi…

Python 实战:定时对网站进行签到

作者 | 朱小五来源 | 快学Python我今天呢&#xff0c;要给大家分享一下升级款——request方式。具体做法首先打开我们需要签到的网站&#xff0c;使用Chrome浏览器的F12快捷键&#xff08;或通过鼠标右键菜单“检查”&#xff09;打开浏览器的开发者工具&#xff0c;点击 Netwo…

有哪些好的刷题网站?2017年最受欢迎的编程挑战网站

程序猿&#xff08;ID&#xff1a;imkuqin&#xff09; 猿妹编译编译自&#xff1a;https://medium.freecodecamp.org/the-10-most-popular-coding-challenge-websites-of-2016-fb8a5672d22f 编程几乎已经成为了人类所知每个行业的必要组成部分&#xff0c;如今有越来越多的人开…

侠客X官方网站成立,第一个内测版本即将放出,敬请期待.

这是一个难忘的日子&#xff0c;西方的情人节&#xff0c;本站的成立代表侠客X&#xff0c;即将与大家见面了。 我们的要做的是&#xff0c;传承侠客站群经典模式&#xff0c;打造SEO王者力作&#xff0c;侠客X即将公开测试&#xff0c;敬请期待。 http://xpk.in Qin 转载于:ht…

SEO研究:网站结构

在衡量所有权重之间&#xff0c;网站结构大概占到30%&#xff0c;这也是很多网站排名不好&#xff0c;或者有站长根本不用优化就能获得很好排名的原因。说到结构必须明白两个概念&#xff0c;一个是物理概念,就是文件存放的路径&#xff0c;另一个是逻辑结构。比较好的情况是逻…

【百度地图API】——国内首款团购网站的地图插件

摘要&#xff1a; 本文介绍了一款应用在团购网站上的地图插件&#xff0c;适用于目前非常流行的团购网站。使用这款地图插件&#xff0c;无需任何编程技术&#xff0c;你就把商家的位置轻松地标注在地图上。 前台地址 http://map.baidu.com/fwmap/upload/r/map/fwmap/tuangou/u…

用Python轻松制作一个股票K线图网站

在前面的文章中&#xff0c;我们学习了如何使用 Tkinter 构建股票数据抓取以及展示K线图功能&#xff0c;虽然大致的功能已经具备&#xff0c;但是在当今这个人手一个 Web 服务的年代&#xff0c;GUI 程序还是没有 Web 服务来的香啊。我们需要用到的知识包括 PyEcharts 的使用&…

边玩游戏边学Git?这个开源网站我爱了

Git作为世界上最流行的版本控制系统&#xff0c;可以说是每一位与程序打交道的朋友最值得学习的软件之一。除了管理自己的项目&#xff0c;如果你对参与开源项目感兴趣&#xff0c;那么Git更是联结Github、Gitlab等知名代码项目托管网站&#xff0c;与他人协作管理推进开源项目…

15个新鲜的单页网站设计实例

单页网站因为结合着css3 html5和jquery技术 使得这样的网站看这些网站看起来更具吸引力和新鲜的感&#xff0c;逐渐成为互联网上一个新趋势 &#xff0c;今天介绍网站设计一些新鲜的例子 。我希望大家将欣赏这美妙的设计师做的工作。随时分享您的看法&#xff0c; 1) Pigspotte…

【第15周复盘】B站是个学习的网站

「青少年编程竞赛交流群」已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】或【Python】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料&#xff08;视频、代码、文档&…

【组队学习】【26期】编程实践(Django网站开发)

编程实践&#xff08;Django网站开发&#xff09; 论坛版块&#xff1a; http://datawhale.club/c/team-learning/28-category/28 开源内容&#xff1a; https://github.com/datawhalechina/team-learning-program/tree/master/Django 学习目标 从零开始搭建一个属于自己…

大型网站架构演变和知识体系

存爱好&#xff0c;作为收藏&#xff0c;原地址&#xff1a;http://www.blogjava.net/BlueDavy/archive/2008/09/03/226749.html&#xff0c;同时向原创致敬之前也有一些介绍大型网站架构演变的文章&#xff0c;例如LiveJournal的、ebay的&#xff0c;都是非常值得参考的&#…

正确设置php-fpm和nginx防止网站被黑

2019独角兽企业重金招聘Python工程师标准>>> 核心总结&#xff1a;php-fpm 子进程所使用的用户&#xff0c;不能是网站文件所有者。 凡是违背这个原则&#xff0c;则不符合最小权限原则。 根据生产环境不断反馈&#xff0c;发现不断有 php网站被挂木马&#xff0c;绝…