自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 收藏
  • 关注

原创 Scala13

Object Equality定义 equals会出现四种不一致定义的情况Defining equals with the wrong signatureChanging equals wihtout also changing *hashCode. (一般利用hashCode来实现是否相等)Defining equals in terms of mutable fields.Faling

2016-09-09 10:47:36 425

原创 Scala11

Extractor这一章主要讲 Extractor,extractor使得你可以定义自己的模式,而不用创建对应的 case class,即: Extractor let you define new patterns for preexisting types, where the pattern need not follow the internal representation of the

2016-09-02 19:39:02 367

原创 Scala12

Woking with XML这一章主要介绍Scala对XML的支持,包括了如何使用XML字面量来创建节点,如何将XML保存到文件中以及如何从文件加载XML,如何利用模式匹配以及查询方法将XML分解XML称为半结构化数据,是因为它比普通的字符串要有结构(将数据组装成树),但是它又比程序语言的对象更松散(XML允许在标签中存在自由格式的文本,并且缺少类型系统(实际上是有的))。半结构化的数据在于它

2016-08-29 10:35:20 444

原创 Scala11

Extractor这一章主要讲 Extractor,extractor使得你可以定义自己的模式,而不用创建对应的 case class,即: Extractor let you define new patterns for preexisting types, where the pattern need not follow the internal representation of the

2016-08-28 09:35:32 443

原创 Scala10

Implementing Lists这一章主要讲List在Scala中是如何实现的List在Scala中并不是一个内置的结构,而是定义在一个抽象类 List 中,它有两个子类: :: 以及 Nil。 :: 是一个final class,而 Nil则是一个Object。List类中只有三个方法: isEmpty, head, tail等List的一些内置方法,如 length,drop,map

2016-08-26 20:15:15 528

原创 Scala9

Abstract Members这一章主要讲抽象成员。在Scala中,you can make everything that is not yet known into an abstract member, it does not matter whether the unknown is a type, method, variable or value。首先,定义什么是抽象: A mem

2016-08-25 10:00:28 338

原创 Scala8

Stateful Objects这一章主要介绍 stateful object,即 mutable object对于 purely functional object,每次访问都可以得到同样的结果。然而对于 stateful object, the result of a method call or field access may depend on what operations were

2016-08-19 11:43:01 335

原创 Scala6

Assertions and Unit Testing这一章主要介绍Scala的断言以及Unit Test使用断言有两种方式:使用assert(condition, explanation)方法使用ensuring()方法Scala不仅有自己自带的测试框架,比如说:ScalaTest、specs、ScalaCheck,还支持直接使用Java的测试框架,如:JUnit、TestNG在Scal

2016-08-18 11:29:25 308

原创 Scala7

Working with Lists这一章主要介绍List的一些common operation, 还介绍一些 design principles for programs working on listsLists和数组很像,但是有两点不同: 1. lists是immutable而数组则是mutable,即不能对一个list中元素重新赋值而只能重新构造一个新的list。 2. lists是递归

2016-08-17 18:00:17 283

原创 Functional Programming in Scala week2 Assignment-Function Sets感想

这是Coursera上Functional Programming in Scala week 2 Assignment的记录。 在自己一开始拿到题目后,是莫名奇妙的,完全看不懂。一方面,我觉得这是因为自己对函数式编程还不是很熟悉,另一方面我觉得也是题目有误导之处 type Set= Int => Boolean 一开始,我直接理解成这是一个Set的定义,是一个容器。然后想了十多

2016-08-12 20:26:07 371

原创 Scala(5)

Traits这一章介绍了Scala面向对象编程中一个非常重要的结构吧:Trait。Trait在英文的解释是:A distinguishing characteristic or quality。这个词的意思就很好解释了Trait在Scala中的作用:用来描述Object的一些特性,但是这特性又不在继承关系下的,即使用继承来表示这种关系很牵强,所以需要Trait。Trait的使用有点类似于Clas

2016-08-10 15:48:51 254

原创 Scala(4)

Composition and Inheritance看了几章函数式编程的方法,这一章回到面向对象编程,介绍面向对象更高级的知识,包括继承、组合、多态、动态绑定首先是Abstract classes。这个和其他面向对象的特性没什么不同。不过和java不同的是,如果在类前加上了Abstract关键字,那么就不需要再在抽象方法前加上Abstract关键字了Parameter methods是指不需

2016-08-09 21:17:07 270

原创 Scala(3)

Functions and Closures这一章讲函数和闭包。毕竟Scala也算得上函数式语言了,函数在其中地位也是非常重要的定义在object里的函数叫做method,除了可以定义在object或者class里面,作为函数式语言,Scala也允许在函数中再定义,这样的的函数称为Local functions。Local function只可在外层函数,不可以嵌套访问函数。只能通过外层函数间接

2016-08-07 15:48:25 237

原创 Scala(2)

Funtional Objects这一章继续介绍有关class的内容。不过,这一章跟前面那章介绍class的不同,这一章主要是介绍object,就是没有mutable state的class,这样才符合函数式编程的要求。首先,介绍class的class parameter。class parameter就是传递给class的参数,同传递给函数的参数一样,在这里也不能省略参数的类型,因为Scala

2016-08-06 16:40:20 292

原创 Scala(1)

Classes and Objects这一章主要讲Scala面向对象的内容:Calss。1 . Scala中,默认限定符就是public,因此只要需要使用private或者protected才需要显示声明限定符(比Java好多了。。。)2 . Class中带method的参数是val的,所以不可以在method内部对函数重新赋值。另外,尽管Scala有类型推导系统,函数的参数必须显示声明类型。

2016-08-04 15:18:00 273

原创 Scala(0)

因为偶然在Coursera上看到了Scala的系列课程,然后点进去看看发现是介绍Scala这门函数式与面向对象的混合式语言的。想到自己对函数式语言挺感兴趣的,自然就报名了。于是乎,忙完了前几天的东西,这一两天就一直在看Programming in Scala。虽然才看了几章,但是自己是连呼过瘾啊。不得不说,这门语言比自己学的C++,Java啥的有趣多了。在这里,总结一些Scala的知识点。不过,因为

2016-08-04 10:43:31 390

原创 构造回文串

昨晚碰巧看到腾讯2017的一道暑期实习生题目:构造回文串。题目描述如下见注释。思路:本来自己是一开始使用递归解决的,直接计算需要删除的字符数。做法是这样:有两个指针,一个head,一个tail。初始时head指向string的头,而tail指向string的尾。首先判断head和string的字符是否相等。如果相等,则进行head++,tail–,进行循环比较。如果不相等,那么说明这时需要删去一个字

2016-07-31 10:56:49 1097

原创 指针的指针

从交换两个数谈起。一般地,如果我们要交换两个数,不论是是使用指针,还是直接使用对应的类型。要么引入一个临时变量,要么进行异或操作,或者说进行加法运算。不过,当使用指针时,我们还可以这么做:交换两个指针的指向,而不是直接交换指针所指向的值。 代码如下:#include<iostream>using namespace std;void swap(int **ptr1, int **ptr2) {

2016-07-24 11:46:12 263

原创 unsigned和signed的转换

一直以来,关于在overflow和underflow这方面,自己都没有怎么去关注。最近看了CSAPP,然后又在这方面吃了几次亏,比如使用C++中的vector,vector.size() 返回的就是unsigned。所以,在使用这方面时,要比较注意。 总结如下: 对于unsigned和signed进行比较时,编译器会把signed转换为unsigned。转换规则非常简单:编译器不会真的去把一个数

2016-07-23 23:54:19 2638

原创 论python的类型推导

今天才发现原来python的类型推导有时也是一个祸害。因为有了类型推导,所以自己潜意识就会放弃考虑类型之间的转换。说到底还是自己太懒了。。。嗯,要吸取教训

2016-07-17 11:01:57 1262 2

原创 Scrapy-Splash爬取淘宝排行榜(三)

五 写spider1.知道了要爬取的内容,所以,我们首先在start_urls中设置如下: start_urls=['https://top.taobao.com/index.php?topId=TR_FS&leafId=50010850','https://top.taobao.com/index.php?topId=TR_SM&leafId=1101','https://top.taoba

2016-04-30 22:29:20 4343

原创 Scrapy-Splash爬取淘宝排行榜(二)

四 开始爬取1.首先分析淘宝排行榜的设置。在这里,商品被分为服饰,数码家电,化妆品,母婴,食品,文体,家具,车|玩具|宠物。而点开每个大类,又可以看到商品被分为很多小类。点开任意小类,往下拉就可以看到该类商品的排行信息,包括销售上升榜,销售热门榜等等。这里我只爬取销售热门榜的内容,所以继续点击销售热门榜的标签。可以看到在这里列出了该类前二十的商品。信息包括:排名,关键词,参考价,成交指数,升降位次。

2016-04-30 22:19:14 4745

原创 Scrapy-Splash爬取淘宝排行榜(一)

一 引言日前,自己因项目需要需要爬取淘宝排行榜,而淘宝因为用了很多的AJAX技术,不能用普通的爬虫爬取,于是我这里就想用如一些集成了PhantomJS或类似的python爬虫框架。一开始自己尝试了pyspider,但是自己对pysider并不是很熟练,而且网上这方面资料也很少,于是弃坑转为自己较为熟悉的scrapy框架。经过一番搜索,在Github发现了这个,scrapy-splash,由scrap

2016-04-30 21:28:15 9131

原创 python unicode-escape编码问题

有一串编码如下:s='\u871c\u7c89/\u6563\u7c89'查看类型,为str:按utf-8先解码在编码依然不行。 最后,参考水木清华的一篇帖子可以这么做: 那么问题来了,这个unicode-escape什么来的呢 在python中,对于unicode存储时,可以采用另一种方法: 将unicode的内存编码值进行存储,读取文件时在反向转换回来。这里就采用了unicode-esc

2016-04-22 17:34:45 12619 2

转载 Ubuntu配置静态IP

转载自这里:Ubuntu配置静态IPUbuntu的网络参数保存在文件 /etc/network/interfaces中,默认设置使用dhcp,内容如下:  # The primary network interface auto eth0 iface eth0 inet dhcp  设置静态ip的方法如下: 1)

2016-02-23 19:28:10 416

原创 [爬虫系列(三)]用多线程爬取百度贴吧默认表情

一直认为百度贴吧默认表情比较有趣,于是学了爬虫后,我便想把这些表情爬下来.1.URL分析分析这些url,发现它们的模式都是这样的:http://static.tieba.baidu.com/tb/editor/images/client/image_emoticon%d.png所以,我们只需要用数字替换掉%d就行了.并且因为表情只有50张,我们只需要1到50就行了.2.爬取网页有了url,那么爬取网

2016-02-21 21:00:35 712

原创 浅谈Python装饰器

这部分我参考了廖雪峰老师的网站内容:装饰器 这里补充下自己的看法: 先来一个例子def begin(f): print f.name return f @begin def now(): print ‘2016-02-21结果显示(这里还没有调用now()函数): now 如果调用now()函数,那么则会有 2016-02-21这是为什么

2016-02-21 20:46:44 575

转载 Understand for Linux安装方法

转载自Understand官网. Understand Installation InstructionInstallation InstructionsUncompress and extract the contents of the installation file. For example: % tar -xvzf Understand-4.0.800-Linux-64bit.

2016-02-14 22:18:07 2626

原创 [爬虫系列(二)]爬取豆瓣读书Top250,并保存每本书

这里我们要爬起豆瓣读书Top250,并保存每本书的书名,信息,简要介绍和作者信息. 这里,仍然分为三步: 1.url分析 2.数据分析 3.爬取数据1.url分析豆瓣读书Top250的url分析和豆瓣电影Top250类似: 豆瓣读书Top250的url基本都是这样的: http://book.douban.com/top250?start=所以,同样我也是利用urlparse的url

2016-02-12 16:40:32 8418

原创 [爬虫系列(一)]爬取豆瓣电影排行前250

这是个小爬虫,基于python2.7.主要用到了BeautifulSoup库和urllib2的urlopen,爬取豆瓣电影排行前250,并保存在文件中. 主要分为三个步骤: * 分析url * 分析网站数据 * 爬取数据一.分析url豆瓣电影排行榜250的url很好分析: 格式都是这样子的: http://movie.douban.com/top250?start=(page_num)

2016-02-12 15:40:13 5646

转载 Win10下安装Ubuntu双系统

本文是有关在win10下安装Ubuntu双系统。转载来自:U盘安装windows10和Ubuntu Linux双系统双系统教程,略有更改。 按照本图解教程的方法可以完成Windows 10和Ubuntu Kylin 15.04双系统的安装。 Windows 10和Ubuntu Kylin 15.04双系统引导成功图: 声明:安装Windows 10和Ubuntu Kylin 15.04系统已经

2016-01-30 09:00:53 3474 1

原创 Linux的shell使用总结

这几天看了有关bash的一些知识,然后做了个shell使用总结。 见下图: 先弄了个雏形吧,因为自己还没有看到shell脚本编程,所以就没有写那里了。嗯,以后再补上。

2016-01-24 14:38:29 282

原创 Linux文件描述符和重定向操作符

文件描述符: 是程序发送输出和获取输入的地方。当执行一个程序时,运行该程序的进程就会打开3个文件描述符。3个文件描述符见下表: 一般地,标准输入来自键盘,标准输出和标准错误输出会输出到屏幕上。在Liunx的shell中,可以通过重定向操作符来重定向标准输入,标准输出,标准错误输入。 重定向操作符的内容见下表:

2016-01-23 13:58:47 356

原创 Linux硬链接和符号链接的区别

链接是linux中表示指向文件的指针,类似与windows中的快捷方式。 本文主要列出硬件接和符号链接的区别 总结: 硬链接和符号链接可以这样来理解。硬链接相等于一个人的多个全名,而符号链接则相当于人的化名。化名显然没有全名重要。

2016-01-21 19:15:28 376

原创 线性表的基本操作实现(基于链表,有头结点)

用C++实现的基于链表的线性表,有头结点. 实现的基本操作有创建空链表,插入,删除,查找等操作.#include <stdio.h>#include <stdlib.h>#define ERROR NULLtypedef int ElementType;typedef struct LNode *PtrToLNode;struct LNode { ElementType Data;

2015-12-09 22:58:42 413

原创 线性表的基本操作实现(基于链表)

用C++链表方式实现了线性表的一些基本操作,包括插入元素,删除元素,反转线性表等.#include <stdio.h>#include <stdlib.h>#define ERROR NULLtypedef int ElementType;typedef struct LNode *PtrToLNode;struct LNode { ElementType Data; Ptr

2015-12-09 22:01:24 1186

原创 中国大学MOOC-陈越、何钦铭-数据结构 统计工龄

题目描述: 给定公司N名员工的工龄,要求按工龄增序输出每个工龄段有多少员工。 输入格式:输入首先给出正整数N(≤10 ​5 ​​ ),即员工总人数;随后给出N个整数,即每个员工的工龄,范围在[0, 50]。输出格式:按工龄的递增顺序输出每个工龄的员工个数,格式为:“工龄:人数”。每项占一行。如果人数为0则不输出该项。输入样例: 8 10 2 0 5 7 2 5 2输出样例: 0:1

2015-10-31 19:46:04 1690

原创 中国大学MOOC-陈越、何钦铭-数据结构 Insertion or Heap Sort

题目描述: According to Wikipedia:Insertion sort iterates, consuming one input element each repetition, and growing a sorted output list. Each iteration, insertion sort removes one element from the input d

2015-10-31 10:20:33 584

原创 中国大学MOOC-陈越、何钦铭-数据结构 Insert or Merge

题目描述: According to Wikipedia:Insertion sort iterates, consuming one input element each repetition, and growing a sorted output list. Each iteration, insertion sort removes one element from the input d

2015-10-29 22:45:36 472

原创 中国大学MOOC-陈越、何钦铭-数据结构 排序(堆排序)

思路: 这篇文章是接刚才的希尔排序,在这次我是用堆排序实现的。代码如下:#include<iostream>using namespace std;#define MaxSize 100000//定义数组的最大容量long int A[MaxSize];//数的范围在long int范围内void Input(long int N){//输入函数 for (long int i =

2015-10-28 20:26:47 462

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除