hello, world.
post @ 2016-08-29

在 Python 的世界中,一切皆对象。 int / list / dict / … 都是对象,除此之外,函数、类本身也是对象,那么,这些对象究竟是什么呢?

从结果看,Python 中的对象是 C 语言中结构体在堆上申请的一片内存区域。而在具体实现上,这里先简单描述一下。
obj

Read More
post @ 2016-08-22

尝试通过源码自己编译 Python,使用的系统是 Ubuntu14.04 LTS。

python-back.png

Read More

  常见的排序算法——诸如快排、堆排或归并等——都是基于比较的,除了这种正统意义上的排序算法,最近了解了几种令人啼笑皆非的排序算法,与大家分享一下。虽然这些算法都基本不可能用到生产环境,不过,平时拿出来恶搞一下还是比较有意思的。

New sorted logo.png

Read More
post @ 2016-05-30

Python 是一门非常具有包容性的语气,体现在一个优秀的工程师可以非常容易优雅高效地完成一件事情,而一个拙略的工程师通过一样的代码同样可以做到几乎一样的功能。今天,介绍一下 Python 的 Ellipsis~~~

想象这样一个问题:

如何优雅地生成一个等差数组?比如输入一个序列的第一、第二项以及最后一项,然后返回这个等差数组。

Read More

  最近几年互联网行业以迅雷不及掩耳盗铃儿响叮当仁不让之势席卷了每个人生活的方方面面,大把的年轻人开始投身互联网。那么,互联网公司的发展情况如何,对从业者的要求如何,以及不同职能的薪水如何,哪些城市的互联网行业发展更为迅猛,身为互联网行业的一份子,你知道吗?
  不识庐山真面目,只缘身在此山中。那么,让我们站在更高的角度,用数据的方式来对互联网行业的职场进行分析,来一起看看这个行业吧。

Read More
post @ 2016-03-01

在Python尤其是Python2中,编码问题是困扰开发者尤其初学者的一大问题。什么Unicode/UTF-8/str,又是decode/encode的,搞得人头都大了。其实不然,这有点类似Java中java.io包一样,看似庞大难懂,但是可以非常精细地定制需求。

屏幕快照 2016-03-01 16.30.04.png

Read More
post @ 2016-01-01

最近有几个知乎上的朋友私信问到关于爬虫爬取数据的时候总是出现这样或者那样的问题,这里介绍一个Python HTTP库: requests。Requests是一个基于Apache2协议开源的Python HTTP库,号称是“为人类准备的HTTP库”。

Python中,系统自带的urlliburllib2都提供了功能强大的HTTP支持,但是API接口确实太难用了。requests作为更高一层的封装,确实在大部分情况下对得起它的slogan——HTTP for Humans。

发送请求

废话少说,先看看requests的简单使用吧:

1
2
3
4
5
In [1]: import requests
In [2]: resp = requests.get('http://xlzd.me')
In [3]: resp.status_code
Out[3]: 200

Read More
post @ 2015-11-04

在Python里试验一下下面的代码:

1
2
3
4
5
6
7
8
9
10
11
a = 1
b = 1
print a is b
a = -5
b = -5
print a is b
a = -6
b = -6
print a is b

输出的结果令人咋舌,竟然会是TrueTrueFalse,是什么原因导致这样的差异呢?

Read More

  玩知乎很久了,在知乎上学到不少知识,也学到不少抖机灵的技巧。作为一个知乎重度用户兼技术宅,简单抓取了一下知乎的一点数据,力求看到一个尽可能真实的知乎社区。


数据抓取

  知乎没有可以一页一页翻取用户资料的列表页,而且用户首页URL也没有规律可循,完全是用户自定义的。考虑到我不准备拿下全部知乎用户,只希望取到一批质量不错的优质用户,我的抓取策略是这样的:用一个知乎大牛入手,抓取他的关注列表,然后进入他的关注列表,抓取每个人的资料后再抓取这这些人关注的列表,依次走下去。

Read More
post @ 2015-08-24

第一步,我们想要生成fibonacci数列前N项,我们可以这样做:

1
2
3
4
5
6
def fib(size):
a, b = 0, 1
while size:
print a,
a, b = b, a + b
size -= 1

执行可以得到输出如下:

1
2
In [1]: fib(10)
0 1 1 2 3 5 8 13 21 34

这个函数的问题在于,我们只能调用它输出结果,并没办法拿到返回值,于是通用性不够。现在对这个函数做一点修改如下:

Read More
⬆︎TOP