第0部分

Python简介

什么是Python?

Python英语单词是蟒蛇的意思。

Python语言是少有的一种可以称得上既简单又功能强大的编程语言。

注重的是如何解决问题而不是编程语言的语法和结构。

Python的作者,吉多·范罗苏姆(Guido von Rossum),荷兰人。Python语言诞生的时间是在1989年。

Python由于在2010年获得较大市场份额的增长(1.81%,增长速度最快的)获年度Tiobe编程语言大奖。

Python的特征

Python语言的定位

脚本语言(Scripting language)

高阶动态编程语言

Python不能与JavaScript等只能处理简单任务的编程语言相提并论。

简单易学

简结:不用结束符

可读性强:每一级缩进都是固定的若干个空格(如:4个空格)

上手快:会其它语言的上手更快

解释性&编辑性

Python语言写的程序不需要编译成二进制代码。你可以直接从源代码运行程序。在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。

Python中也有编译执行的特性。

高级语言

使用Python语言编写程序,无需考虑诸如管理内存一类的底层。

面向对象

Python即支持面向过程的编程也支持面向对象的编程。在面向过程的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在面向对象的语言中,程序是由数据和功能组合而成的对象构建起来的。与其他主要的语言如C++和Java相比,Python以一种非常强大又简单的方式实现面向对象 编程。

可扩展性与可嵌入性

如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。与此相反,可以把Python嵌入C/C++程序,提供脚本功能。

免费、开源

可自由地发布这个软件的拷贝、阅读它的源代码、对它进行改动、把它的一部分用到新的自由软件中。

可移植性

由于它开源的本质,Python已被移植到许多平台上。如果能避免使用依赖系统的特性,那么所有的Python程序无需修改就可在任何平台上面运行。包括Linux ,window,Macintosh等等。

胶水语言

可以调用别的语言编写的功能模块,将他们有机的结合在一起形成更高效的新程序。Python可以把C++、Java写的模块轻松结合起来协同工作,这样就能把c++的针对底层,java的面向对象两大优势统一到一个完整的程序中来。

丰富的库

丰富的库似乎已变成判断一种编程语言是否强大的重要标准。Python拥有一个强大的标准库。Python语言的核心只包含数字、字符串、列表、字典、文件等常见类型和函数,而由Python标准库提供了系统管理、网络通信、文本处理、科学计算、数据库接口、图形系统、XML处理等额外的功能。除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等等。

注:

`wxPython是Python编程语言的一个GUI工具箱.他使得Python程序员能够轻松的创建具有健壮、功能强大的图形用户界面的程序.

`

twisted是一个用python语言写的事件驱动的网络框架,他支持很多种协议,包括UDP,TCP,TLS和其他应用层协议,比如HTTP,SMTP,NNTM,IRC,XMPP/Jabber。

Python的语法特点

Python是一种语法表达极其优美的脚本语言

运行方式 命令行、交互式、图形集成环境

面向对象 甚至还支持异常处理

模块和包 与Java类似,还开发了Jpython

语言扩展 可以用C/C++/Java编写新的语言模块

丰富的库 数据分析/系统管理/web/GUI/… …

Python的缺点

运行速度不够快。

Python程序运行的效率不如Java或者C代码高,但是我们可以使用Python调用C编译的代码。

开发速度与运行速度之间的矛盾

至今还没有一门编程语言,开发速度比Python快,运行速度比C快。

Python发行版比较 Python Shell IPython

Python的数据处理能力主要依赖于NumPy,SciPy,Matplotlib,Pandas这4个库,其中NumPy提供了矩阵运算的功能,SciPy则在NumPy的基础上添加了许多科学计算的函数库,而这两个库就使Python具有和Matlab一样的数据处理能力了。Matplotlib库提供了绘图,可以实现数据的可视化,pandas是基于NumPy的一种工具,该库提供了高效地操作大型数据集所需的工具。而这四个库都需要我们进行单独安装,Python自身并不具备这些库。

shell是操作系统最外面的一层。shell管理你与操作系统之间的交互:等待你输入,向操作系统解释你的输入,并且处理各种各样的操作系统的输出结果。

IPython

Ipython及各种科学计算库的安装及升级更新较为麻烦和复杂,幸好有大神将科学计算所需要的模块以及IPython打包供用户使用。

Python(x,y)

GUI基于PyQt,曾经是功能最全也是最强大的,而且是Windows系统中科学计算免费Python发行版的不二选择.不过今时已不同往昔! Python(x,y)里面的许多科学计算包部分有兼容性的问题,无法使用最新的程序包。

`图形用户界面 (Graphical User Interface)

`PyQt是Qt库的Python版本

`Qt是一个跨平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。

WinPython

WinPython功能也是比较全的,软件包比较新,GUI基于PyQt,不过相对于Python(x,y),它主要是关注便携式安装体验:你可以把它装在u盘里面。

Anaconda

Anaconda Python 是完全免费的企业级的Python发行大规模数据处理、预测分析和科学计算工具。 Anaconda 是 Python 科学技术包的合集,功能和 Python(x,y) 类似。包管理使用 conda,GUI基于PySide,容量适中,但该有的科学计算包都有。Anaconda 支持所有操作系统平台,它的安装、更新和删除都很方便,且所有的东西都只安装在一个目录中。

Enthought Canopy

GUI基于wxpython,包含PySide。Canopy有自己的集成开发环境(IDE),里面的代码智能提示和自动补全功能不比IPython差的!

Canopy是Enthought公司开发的一款Python集成开发环境,之前的版本叫EPD,附带了超过50个Python模块,包括numpy、scipy、panda、matplotlib等常用模块,同时提供免费版和供科研使用的学术版。

Python用于科学计算的一些常用工具和库

NumPy-数学计算基础库:N维数组、线性代数计算、傅立叶变换、随机数等。

SciPy-数值计算库:线性代数、拟合与优化、插值、数值积分、稀疏矩阵、图像处理、统计等。

SymPy-符号运算

Pandas-数据分析库:数据导入、整理、处理、分析等。

Matplotlib-绘图库:绘制二维图形和图表。

scikit-learn: Machine Learning in Python

Beautiful soup:爬虫工具

nltk:Natural Language Toolkit

Chaco-交互式图表

TVTK-数据的三维可视化

Mayavi-更方便的可视化

VPython-制作3D演示动画

OpenCV-图像处理和计算机视觉

Cython-Python转C的编译器:编写高效运算扩展库的首选工具

BioPython-生物科学

附:

Canopy简单操作

设置路径

In [1]:import os #导入os的标准库

In [2]:os.getcwd() #查看现在的工作目录

Out[2]: 'C:\WinPython-64bit-3.5.1.1\python-3.5.1.amd64\Scripts'

In [3]: os.chdir(r'E:\python') #设置工作目录是‘E:\python’,且此目录必须已存在。

In [4]:os.getcwd()

Out[4]: 'E:\python’

IPython简单操作

Ipython 是一个 python 的交互式 shell,比默认的Python shell 好用得多,支持变量自动补全( Tab 键),自动缩进,支持bash shell 命令,内置了许多很有用的功能和函数。

Ipython 中运行编写好的py脚本文件:

` run test.py !python test.py

IPython 中用 ! 表示执行 shell 命令,用 $ 将 python 的变量转化成shell 变量。通过这种两个符号,就可以做到和 shell命令之间的交互,可以非常方便地做许多复杂的工作。

Ipython功能介绍资料 :

(object)?: object特性的介绍和概述,

%quickref :一份手册,包含了所有的命令

%magic 【%lsmagic】, [ipython特性的介绍和概述,快速查看可使用魔力函数(内置的一些方法)]

(object)? s = [1, 2, 3, 4, 5]; s? s?? s.sort(reverse=True); print s

Ipython shell执行过程记录: In[] Out[]

In [] 记录用户输入命令

Out [] 记录python 变量、命令输出信息。

几个简单好用的 magic函数:

在IPython里面可以使用一些标准unix命令, 比如cd,pwd等...,其实这些unix命令是IPython的magic commands, 这些magic commands一般用%作为前缀.

%run, 运行一个.py脚本, 运行完了后这个.py文件里的变量都可以在Ipython里继续访问.

%timeit, 测试一个命令(或者一个函数)的运行时间

%ed 或 %edit编辑一个文件并执行。

%env显示环境变量。

%history显示历史记录。

%pwd显示当前目录。

%pycat filename用语法高亮显示一个 python 文件(不用加.py后缀名)。

%save filename 将执行过的代码保存为文件。

%pylab 可以查看代码中 import 了哪些包。 。

注:%pylab是 IPython中的一个 magic函数。可以查看代码中 import 了哪些包。 通过 ipython notebook --pylab inline, 可以让 plot 出来的图片直接嵌入在notebook里面。

在Python中range和xrange是不同的,range返回值是:一个从0开始指定长度的连续整数序列。然而,xrange返回一个"xrange 
对象",该对象非常类似于迭代器。举个例子:
range(100)
xrange(100)
range(100)会返回一个100个整数的序列,而xrange(100)会返回一个迭代序列。所以xrange支持迭代,而range不支持。好处是
,在遍历极端的大序列时,这是相对于range的很大优势。另一个优势也是明显的:当你的代码在遍历已经产生的序列时调用break
的话, xrange显然比range要好,因为xrange会消耗更少的内存。

Last updated

Was this helpful?