用python做题——PythonChallenge-1
入门学Python是看的廖雪峰老师教程和电子书(笨办法学python,byte-of-python),但是学的过程甚是枯燥,每个知识点看得懂,但是这个知识点常用否?如何和其他知识点搭配用?就无从而知了,效率很低。所以就想 ”有目的性的学习要好点---以点破面式“ ,感觉这样效率高点,于是找到了python大学,每道题都是一个甚至多个知识点,在此记录。。
沉思:
网页给出一张图片和一堆毫无逻辑的英文单词,再看图片K->M,O->Q,E->G,很自然想到字符替换,可是只是替换这三个你会发现还是一堆..一坨。。。Oh shit。
所以一拍脑袋---应该全换了呀,那么你会发现规则:当前字符替换为它后的第三个。OK,解题思路有了。
我的想法是:每个字母在ASCII表中都有对应的号码,我们只可以拿它来做文章。一拍大腿,有个难点:A-D,B-E....X-? Y-? Z-? 你会发现,又会学到新东西了(*^_^*)(*^_^*)。
开始表演:
初级:
text=open('text').read()In [23]: def repl(x): ...: dig=ord(x) #ord()获取字符的ASCII码 ...: if 96 < dig < 123: ...: if dig == ord('y'): ...: return 'b' ...: if dig == ord('z'): ...: return 'c' ...: return chr(dig+2) #chr()ASCII码转字符 ...: else: ...: return xIn [24]: result=''.join(map(repl,text))In [25]: print result
这就是最最初级的,中间还绕了个圈,其实可以直接字符比对 'a' < 'b' ,但可以多学点 chr() , ord() 用法,还有map(), str.join()用法。
装X点,这样写:
result=''.join(map(lambda x:x if not x.isalpha() else chr(ord('a')+(ord(x)-ord('a')+2)%26),text))
个人认为最高级的,也是答案推荐的,实属装X必备的:
#python: 2.7>>> import string>>> table=string.maketrans(string.lowercase,string.lowercase[2:]+string.lowercase[0:2])>>> result=text.translate(table)
知识点:
>>> ''.join() 将列表中的元素组成字符串,比如''.join(['a','b','c'])结果就是'abc'>>> map(func,x) 这是一个内嵌函数,需要俩参数,函数意思是迭代 x 中每一个元素,在func中处理一圈然后返回结果。返回的是一个列表,返回什么很重要。>>> lambda x: expression 这个叫做匿名函数,网上一堆文章,就不耍大刀了,顾名思义就是一个函数,一个没有名字的函数,方便书写。我是这么认为的。 写法就是 ( lambda(关键词) x,y(参数) : 表达式 ),只能有一个表达式。>>> x if expression else y 这种写法叫三元表达式。如果 expression 为真返回 x 否则返回 y 。很方便的。>>> import string string.lowercase string.uppercase 导入string模块string.lowercase表示所有小写字母,string.uppercase表示大写字母,详情请在交互模式下help(string)>>> string.maketrans(old,new) str.translate(table) 这两个联合起来用,maketrans()是string模块下的一个函数,translate()是字符对象的一种方法。简单理解就是用maketrans()生成一种模式, 然后用translate()转换,maketrans()需要俩参数,old 是被替换的字符串,new 是替换成的字符串,old 和 new 必须长度一样。>>>还有个知识点: ord('a')+(ord(x)-ord('a')+2)%26) 这个公式我在大学学过,能参悟透的话很有用。
这些是这道题的知识点,过了这关就会提示你如何看答案了,有各式各样的解题方法。
用python做题——PythonChallenge-1相关推荐
- python做题记录之乘法运算
题目描述: 给你两个整数a和b(0 < a,b < 1000),按笔算的格式输出a乘以b(a是被乘数,b是乘数)的运算过程, 最后再输出一行 "***************** ...
- python做题记录之正方形拼接
题目描述: 现在有一堆木棒,告诉你它们的长度,判断能否用这些木棒拼接成正方形. 注意:所有的木棒都要用上,且不能截断. 给你一个正整数list L, 如 L=[1,1,1,1], L中的每个数字代表一 ...
- Python刷题之路,怎样做才能让技术突飞猛进
比你优秀的人比你还努力 这个世界最可悲的就是 , 比你优秀的人比你还努力 偶然的机会,通过Python认识了一位华为的文职工作人员.起初只是问我,Python初学者看什么书能快速入门.而两个月过后,她 ...
- 数学题库python_GitHub Python项目推荐|一个拍照做题程序|数学计算题识题|opencv...
GitHub Python项目推荐|一个拍照做题程序输入一张包含数学计算题的图片输出识别出的数学计算式以及计算结果 项目分析 仓库名称:mathAI 标星(star):1469 (网红级项目,高手作品 ...
- 最适合新手的python刷题网站_有没有适合新手练习Python的网站(做题类)?
直接在知乎看我整理的练习题就可以了, 给你分享一下我自己亲身经历过的python考试题(下面还有练习题大全哦~~~) 记得给小达点个关注~ 你可以参考下面的题进行练习,考试题换汤不换药,希望对你有帮助 ...
- 全国青少年信息素养大赛2023年python·必做题模拟四卷
全国青少年电子信息智能创新大赛 python·必做题模拟四卷 一.单选题 1. 取整除的运算符是?( ) A./ B.// C.÷ D.** 题型:单选题 答案:B 难度:一般 试题解析:B
- 全国青少年信息素养大赛2023年python·选做题模拟一卷
目录 原题文档下载打印做题: 全国青少年电子信息智能创新大赛 python·选做题模拟一卷 一.单选题 1. 下面程序执行完毕后,最终的结果是?( ) a=[34,17,7,48,10,5] b=[] ...
- python自学做题记录之查找单词
今天做题做到一个题目,题目是英文就大概说一下题目意思 输入一个列表,里面都是由句子组成,例如 doc_list = ["The Learn Python Challenge Casino.& ...
- python 判断是不是汉字危机阅读答案_汉字危机_现代文阅读题在线测试(附答案)_高三语文_在线做题网...
汉字危机 _ 现代文阅读题在线测试(附答案) _ 高三语文 _ 在线做题网 汉字危机 王小峰 中国的书写交流进入键盘划时代只有十几年, 任何一个初次接触电脑的人通过简单的学 习都能迅速掌握文字输入. ...
最新文章
- linux环境insight安装与使用
- 一文理解Ranking Loss/Margin Loss/Triplet Loss
- linux 查进程对应用户,linux进程状态查询
- Windows 2003不同域之间迁移密码方法笔记截图
- php5.5.9 新特性,php,_PHP 5.5.9版本中COOKIE的奇怪现象,php - phpStudy
- 这么多年,终于有人讲清楚 Transformer 了!
- 软件测试——性能测试、压力测试、负载测试等详解
- java如何在指定索引位置插入新元素
- 国美处罚“摸鱼员工”,错在什么地方
- 极兔速递完成17.35亿美元融资?回应:不实消息
- 50、多线程创建的三种方式之实现Runnable接口
- Atom: 被墙,插件安装慢、安装困难 解决方案
- NB-ioT的工作状态和工作模式
- Java实现首字母转大写、小写StringUtils.capitalize
- 马尔可夫链与隐马尔可夫模型
- 发现了个神奇的图片压缩工具
- VS2017中添加Flash控件
- SPSS进行问卷数据的效度分析及结果解读(问卷数据统计分析第3步(转载)
- Android高效率编码-第三方SDK详解系列(一)——百度地图,绘制,覆盖物,导航,定位,细腻分解!...
- composer global require fxp/composer-asset-plugin:1.0.0的Not enough arguments解决
热门文章
- 【干货】一文详尽之支持向量机算法!
- 物化视图、普通视图及其区别
- utf8mb4_unicode_ci、utf8mb4_general_ci的区别总结
- 图片CenterCrop和圆角问题(Glide加载)
- netcat 下载地址
- 卷积层(1D,2D,3D..反卷积)
- 一文读懂区块链与大数据的关系
- 绿色专利数据集 1985-2020年上市公司绿色专利申请获得授权量数据 2011-2019地级市绿色专利数据
- SQL-SQL函数(二)Scalar 函数
- excel2010设置列宽为像素_Excel2010中调整行高和列宽的方法