Python Challenge笔记 - 1-程序员宅基地

技术标签: HTML  Python  

http://www.pythonchallenge.com/pc/def/map.html
图片中提示 K->M O->Q E->G
下面给了一段话 看起来是加密过了的 根据提示可以知道 每个字母后移了2位
使用string和maketrans可以解决此问题
解密出来的文字提示使用这个规律解密地址 将map解密后得到 ocr即下一关地址
http://www.pythonchallenge.com/pc/def/ocr.html


>>> import string
>>> l = string.lowercase
>>> t = string.maketrans(l, l[2:] + l[:2])
>>> m = """g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. bmgle gr gl zw fylb gq
glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle. sqgle qrpgle.kyicrpylq() gq pcamkkclbcb. lmu
ynnjw ml rfc spj."""
>>> print m.translate(t)
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.
>>> print "map".translate(t)
ocr
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/iteye_987/article/details/82058606

智能推荐

【图像加密解密】基于混沌序列实现图像加密和解密(图像相关性分析)附Matlab实现_混沌序列解密-程序员宅基地

文章浏览阅读75次。基于混沌序列实现图像加密和解密是一种常见的图像加密技术。它通过利用混沌序列的高度性和敏感性,对图像进行扰动以达到加密的目的。以下是基于混沌序列实现图像加密和解密的基本步骤:混沌序列生成:使用混沌系统(如Logistic映射、Lorenz系统)生成一个混沌序列。这个混沌序列将作为密钥用于加密和解密过程。图像扩频加密:将原始图像中的每个像素值与混沌序列进行异或或其他非线性操作。这样可以在图像中引入高频噪声,使其具有良好的扩频特性。密文传输:将扩频加密后的图像传输给接收方。_混沌序列解密

python是编译语言吗_python程序不需要编译吗-程序员宅基地

文章浏览阅读338次。python编译过程和执行原理(1)python执行原理这里的解释执行是相对于编译执行而言的。我们都知道,使用C/C++之类的编译性语言编写的程序,是需要从源文件转换成计算机使用的机器语言,经过链接器链接之后形成了二进制的可执行文件。运行该程序的时候,就可以把二进制程序从硬盘载入到内存中并运行。但是对于Python而言,python源码不需要编译成二进制代码,它可以直接从源代码运行程序。当我们运行..._python问件写好了会不会编译

k-prototypes聚类算法-程序员宅基地

文章浏览阅读1.3w次,点赞7次,收藏87次。引言数据变量为单一的数值型和单一的类别型的聚类算法之前都已经介绍过了,但是实际的数据大多数是数值型和类别型变量混合。针对混合型变量的数据,采用k-prototypes算法进行聚类。k-prototypes算法k-prototypes算法在聚类的过程中,是将数据的数值型变量和类别型变量拆开,分开计算样本间变量的距离,再将两者相加,视为样本间的距离。k-prototypes聚类的准则就是使用一..._k-prototypes

前端笔试分类题(常用算法篇)_前端笔试题都是什么题型的-程序员宅基地

前端笔试中常用算法题,包括时间复杂度和字符串相关算法。时间复杂度衡量算法好坏,常数时间O(1)代表固定时间操作。字符串相关算法中,Trie树可解决词频统计和前缀匹配等问题。

easyflow 流程图 节点自动布局_流程图自动化布局-程序员宅基地

文章浏览阅读1.7k次。1.设计画布为原点坐标系,流程图根据y轴对称 跳转节点和连线都是随机生成演示地址2.节点分布逻辑 1.首先遍历所有节点,找到无线节点和有线节点 2.在有线节点中找到根节点(只存在连接其他节点的线) 3.把所有节点分层,第一层为无线节点,第二层为根节点,根据根节点找到下一级节点, 所有节点只能被作为一次子节点(同一个节点布局后不能出现多次) 4.父节点宽度为 = 子节点宽度 * 子节点个数 + 节点距离 * (节点个数-1) 5.获得所有节点的宽度后可推算根节点的总宽度,该宽度/2得_流程图自动化布局

前端开发实习面经总结_前端实习面经-程序员宅基地

文章浏览阅读1.2k次。面经一:1. 拖拽实现列表排序描述:有一个列表,列表里面有十条记录,每一行是一条记录。在每一个记录的后面进行一个拖页的动作,以此进行列表的排序。思路:转载至https://blog.csdn.net/azuretodd/article/details/109973228<li class="li_row" v-for="(item,index) in linkData " :key=index draggable="true" @dragstart="drag(_前端实习面经

随便推点

tip动画_tip组件动画效果样式-程序员宅基地

文章浏览阅读371次。下拉刷新通过UIControl来设置拥有三种状态:显示下拉刷新状态,显示松手就刷新状态,显示正在刷新状态每种状态显示的内容都不一样,内容可通过自身设置的UILabel来显示刷新时可令自己父控件的偏移量下移一部分一段时间,自身在此期间显示需要显示的内容显示的内容通过可通过所在父类的偏移量来判断所在父类可通过willMoveToSuperview来获得通过KVO监听父控_tip组件动画效果样式

基于java的陶瓷工厂进销存管理系统设计与实现(项目报告+答辩PPT+源代码+数据库+部署视频)_景德镇陶瓷管理系统设计与实现-程序员宅基地

文章浏览阅读1.9k次,点赞5次,收藏12次。2.1.1Eclipse简介Eclipse这个工具是我开始接触编程就一直使用的工具,它本身也是开源的,在在校学习和日常的实习工作中,使用最为广泛。Eclipse这个工具可扩展性是非常好的,工作中可以通过安装不同的插件来引入各种的实用的功能,让开发与测试变得更加紧密,也更加的方便。最值得一提的是,Eclipse工具本身还附带了Java语言的JDK工具(JDK)这是一个标准的插件的集合。Eclipse的主要项目包括三个组成的部分,分别是Eclipse项目、_景德镇陶瓷管理系统设计与实现

浅谈自然语言处理(NLP)学习路线(一)--- 概述_自然语言处理学习路线-程序员宅基地

文章浏览阅读5.9k次,点赞46次,收藏184次。好了,告一段落,对NLP基础学习路线做个总结:1. 数学基础:重点是函数性质、导数(特别是对矩阵求偏导)、不同概率的定义和性质、数学期望、参数估计、梯度下降法2. 机器学习:重点是LR、Xgboost、HMM、CRF3. 传统文本算法: n-gram、tf-idf、textrank、lda4. 经典神经网络语言模型:LSTM、NNLM、word2vector、fasttext5. 进阶神经网络语言模型:elmo、transformer、gpt、bert。_自然语言处理学习路线

VS Code+Sumatra PDF正反向搜索_sumatrapdf反向搜索-程序员宅基地

文章浏览阅读1.3k次,点赞10次,收藏13次。重新装机后,在配置VS Code和LaTeX的环境后,问题卡在了正反向搜索这边,简单记录下。VS Code + Tex Live + SumatraPDF配置LaTeX反向搜索(持续更新)解决SumatraPDF 在VS Code上反向搜索失效Sumatra PDF反向搜索的问题记录 (texlive+vscode)_sumatrapdf反向搜索

linux查询目录下子目录总大小,linux查询当前目录总大小_linux统计“/home”目录总和大小-程序员宅基地

文章浏览阅读1.1w次。du -sh 查询当前目录总大小du -sh * 查询当前目录下所有子目录总大小 , * 指所有目录,如果只要查询某个目录 替换掉*即可du参数解释-h或–human-readable 以K,M,G为单位,提高信息的可读性-s或–summarize 仅显示总计,即当前目录的大小。常用:du -sh * | sort -nr 查询当前目录下所有子目录总大小 并按大小排序..._linux统计“/home”目录总和大小

std::shared_ptr和std::weak_ptr学习记录_std::shared_ptr weak -1-程序员宅基地

文章浏览阅读482次。std::shard_ptr是智能指针,通过引用计数的方式共享对象的所有权,在引用计数为0时自动释放对象占用的内存。int main(){ int *p = new int(10); std::shared_ptr<int> a(p, [](int* p) {std::cout << "[deleter called]\n"; delete p;}); std::cout << "p=" << p <..._std::shared_ptr weak -1

推荐文章

热门文章

相关标签