- 博客(13)
- 收藏
- 关注
原创 6、老鼠走迷宫(简单,非最短路径)_python版本
最近看到一个新问题,老鼠走迷宫,原题是c版本的,想写成python版本。一个简单迷宫的实现,当中还有很多问题,一步一步来吧,人笨慢慢学习。说明:老鼠走迷宫是递归求解的基本题型,我们在二维阵列中使用2表示迷宫墙壁,使用1表示老鼠行走的路径,试以程式求出由入口至出口的路径。解法:老鼠的走法有上,下,左,右四个方向,在每前进一格之后就选一个方向前进,无法前进时退回上一步选择下一个可前进方...
2019-02-18 22:28:28
2846
2
原创 5、三色旗问题_python版本(附神图)
说明:三色旗的问题最早由E.W.Dijkstra所提出,他所使用的用语为Dutch Nation Flag(Dijkstra为荷兰人),而大多数的作者则使用Three-Color Flag来称之。假设有一条绳子,上面有红,白,蓝三种颜色的旗子,起初绳子上的旗子颜色并没有顺序,您希望将之分类,并排列为蓝,白,红的顺序,要如何移动次数才会最少,注意您只能在绳子上进行这份动作,而且一次只能调换两...
2019-02-16 18:45:55
925
1
原创 4、杨辉三角(帕斯卡三角)_python版本
*说明:杨辉三角形,又称贾宪三角形,帕斯卡三角形,是二项式系数在三角形中的一种几何排列。实现方法生成器(generate),详见:廖雪峰_python生成器。记一下生成器的关键点:1、通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量有限。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用...
2019-02-16 03:20:59
2789
原创 3、斐波那契数列(Fibonacci)_python版本
说明:Fibonacci为1200年代的欧洲数学家,在他的着作中曾经提到:若有一只兔子每个月生一只小兔子,一个月后也开始生产。起初只有一只兔子,一个月后就有两只兔子,二个月后就有三只兔子,三个月后有五只兔子(小兔子投入生产)……如果不太理解这个例子的话,举个图就知道了,注意新生的小兔子需一个月成长期才会投入生产,类似的道理也可以用于植物生长这就是Fibonacci数列,一般习惯称之为费式...
2019-02-14 16:36:41
322
原创 2、汉诺塔(递归)_python版本
说明:河内之塔(Towers of Hanoi)是法国人M.Claus(Lucas)于1883年从泰国带至法国的,河内之塔为越战时北越的首都,即现在的胡志明市;1883年法国数学家Edouar Lucas曾提及这个故事,据说创世纪时Benares有一座波罗教塔,是由三支钻石棒所支撑,开始时神在第一根棒上放置64个由上至下依由小到大排列的金盘(Disc),并命令僧侣将所有的金盘从第一根石棒移...
2019-02-14 15:56:16
190
原创 1、冒泡排序_python版本
冒泡排序是我学习的第一个算法,记录一下过程中遇到的问题和疑惑。何为冒泡排序?它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来,将值大的换至右端)。解释一下百度百科中出现了趟数,每趟比较次数,记录移动次数,每次比较移动记录3次概念。趟数:第一趟...
2019-02-13 01:34:18
218
原创 小白分析4:豆瓣音乐TOP250抓取并存入excel
Hello,大家好..猜猜我这次盯上了什么~~~~~~~~~~~~没错,又是可怜的豆瓣。,这次我们抓取豆瓣音乐的top250。其实,最近我也有在试着爬取别的网站,比如说安居客、优美网之类的,但是这些网站的网页经常会重写,抓取的规律会变;然后抓取一些大家都懂的网页时,由于他们的服务器都架设在国外,经常打不开或者链接速度过慢。而且,最重要的是,经常会有一些反爬虫的手段,比如说访问频繁封禁ip啊,页...
2019-01-11 00:22:34
808
原创 小白分析3:豆瓣电影top250爬虫(静态页面)
当我们打印得到<Element a at 0x39a9a80>或者类似 Element a at 0x???????,这样的一个值,其实它是一个列表,然后列表中的每一个值都是一个字典。 director = (div.select('.bd .''')) 诶等等,好像我们可以用'...'分隔得到规整信息,往下一翻,这条路也是行不通。 此次爬取页面部分...
2019-01-04 19:13:34
998
1
转载 正则表达式
正则表达式:设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了,否则,该字符串就是不合法的。1、基础在正则表达式中,直接给出字符,就是精确匹配。a、\d可以匹配一个数字,\w可以匹配一个字母或数字: '00\d'可以匹配'007',但无法匹配'00A'; '\d\d\d'可以匹配'010'; '\w\w\d'可...
2019-01-04 16:54:06
155
原创 小白分析2:豆瓣图书top250爬虫(静态页面)
python爬虫公认的练手项目就是豆瓣top250的图书和电影的抓取,静态页面且源码简单明了,之前也曾对着大神的例子边敲边理解,今番尝试自己动手,检验一下学习成果。所用的方法不是最简单的,只是自己理解的一种,还有很多问题,写下来留待以后改正。用时:5小时(呵呵,真有趣)第一次编辑遇到的问题:1、作者项抓取包括许多其他信息,未能分开抓取;(split()方法解决)2、第9页开始简...
2019-01-04 16:39:29
1615
原创 小白分析1:图片转字符画
项目来源:实验楼代码背景:windows python3.6 PIL库PIL是python上功能强大的图像处理库,但只支持python2.7。pillow是PIL库的升级版,支持 python3.x。敲黑板: 安装时用 sudo pip3 install pillow 使用时还是用 from P...
2018-12-27 00:18:47
1016
1
转载 if __name__ == "__main__"
文章参考知乎大神的解答。python文件的后缀名是.py,python文件既可以用来直接执行,也可以作为模块被导入。江湖惯例,先上结论:该代码仅在直接运行当前py文件的时候才会运行,而在作为模块被导入时不会运行,故而通常为测试代码而安置。 if __name__ = '__main__':其中,name是模块的内置属性,...
2018-12-26 23:40:35
137
原创 递归和栈帧的调用原理
递归函数:一个函数在内部ji进行自身调用的函数。举个例子,我们来计算阶乘n! = 1 x 2 x 3 x ... x n,用函数fact(n)表示为:n x fact(n-1),只有n=1时需要特殊处理。fact(n)用递归的方式写:def fact(n): if n==1: return 1 return n * fact(n - 1)计算fac...
2018-07-26 09:31:22
3695
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人