一、什么是python?
Python是一种解释型、面向对象、动态数据类型的计算机设计语言。
* 解释型语言: 开发过程中没有了编译环节。
* 交互式语言: 可以在一个Python提示符,直接互动执行程序。
* 面向对象语言: 支持面向对象的风格或代码封装在对象的编程技术。
二、python由来、设计思想、及协议
* python由Guido van Rossum(吉多·范罗苏姆)于1989年底发明。
* python设计哲学:“优雅”、“明确”、“简单”。
* Python 源代码遵循 GPL协议。
三、特点
* 易于学习:较少的关键字,结构简单,语法定义明确,学习简单。
* 易于阅读:代码定义清晰易读。
* 易于维护:源代码容易维护。
* 广泛的标准库:最大优势之一是丰富的库,跨平台的,在UNIX,Windows兼容性很好。
* 互动模式:互动模式的支持,可以从终端输入执行代码并获得结果,测试和调试代码片断。
* 可移植:基于开放源代码的特性,Python已经被移植到许多平台。
* 可扩展:python可以调用其它语言编写的代码。
* 数据库:提供所有主要商业数据库接口。
* GUI编程:支持GUI可以创建和移植到许多系统调用。
* 可嵌入: 可以将Python嵌入到C/C++程序,实现程序脚本化的能力。
四、python应用领域及范围
* 系统编程
* 对操作系统服务的内置接口,编写可移植的维护操作系统的管理工具和部件(也被称为Shell 工具)的理想工具。可以搜索文件和目录树,可以运行其他程序,利用进程或线程进行并行处理。
* Python 的标准库OS工具:环境变量、文件、套接字、管道、进程、多线程、正则表达式模式匹配、命令行参数、标准流接口、Shell 命令启动器、文件名扩展等。
* 用户图形接口
* 简洁快速的开发周期十分适合开发GUI 程序。内置TKinter 的标准面向对象接口Tk GUI API ,可以生成可移植的本地观感的GUI 。Python/ Tkinter GUI 不做任何改变就可以运行在微软Windows 、X Windows(UNIX 和Linux )以及Mac OS(Classic 和OS X 都支持)等平台上。
* Internet脚本
* 提供标准Internet 模块,能够广泛在多种网络任务中发挥作用,无论在服务器端还是在客户端都是如此。脚本可以通过套接字进行通信;从发给服务器端的CGI 脚本表单中解析信息;通过URL 获取网页;从获取的网页中解析HTML 和XML 文件;通过XML-RPC 、SOAP 和Telnet 通信等。
* 组件集成
* 通过C/C++ 系统进行扩展,并能够嵌套C/C++ 系统的特性,使其能够作为一种灵活的粘合语言,脚本化处理其他系统和组件的行为。
* 数据库编程
* 提供了对所有主流关系数据库系统的接口。通过Python脚本存取SQL数据库系统可移植的数据库API ,API 对各种底层应用的数据库系统都是统一的。
* 游戏、图像、人工智能、XML 、机器人
* 利用pygame 系统使用Python 对图形和游戏进行编程;用PIL 和其他的一些工具进行图像处理;用PyRo 工具包进行机器人控制编程;用xml 库、xmlrpclib 模块和其他一些第三方扩展进行XML 解析;使用神经网络仿真器和专业的系统shell 进行AI 编程;使用NLTK 包进行自然语言分析:甚至可以使用PySol 程序下棋娱乐。
五、python哲学思想
在Python解释器
中,通过import this
获取
* 优美胜于丑陋(Python 以编写优美的代码为目标)
* 明了胜于晦涩(优美的代码应当是明了的,命名规范,风格相似)
* 简洁胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现)
* 复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁,多加注释!)
* 扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)
* 间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题,一行代码不能超过80个字符,你可以换行或起一个新的逻辑来写)
* 可读性很重要(优美的代码是可读的)
* 即便假借特例的实用性之名,也不可违背这些规则(这些规则至高无上),觉对不允许特列必须按照这个规则
* 不要包容所有错误,除非你确定需要这样做(精准地捕获异常,不写 except:pass 风格的代码)
* 当存在多种可能,不要尝试去猜测!
* 而是尽量找一种,最好是唯一一种明显的解决方案(如果不确定,就用穷举法)
* 虽然这并不容易,因为你不是 Python 之父(这里的 Dutch 是指 Guido )
* 做也许好过不做,但不假思索就动手还不如不做(动手之前要细思量)
* 如果你无法向人描述你的方案,那肯定不是一个好方案;反之亦然(方案测评标准)
* 命名空间是一种绝妙的理念,我们应当多加利用(倡导与号召
六、对比及种类
[1] 比较
* C和Python、Java、C#
1. C语言: 代码编译得到机器码 ,机器码在处理器上直接执行,每一条指令控制CPU工作
2. 其他语言: 代码编译得到字节码,虚拟机执行字节码并转换成机器码后在处理器上执行
* Python和CPython是由C开发而来
1. 使用:Python的类库齐全且使用简洁,如果实现同样的功能,Python10行代码解决,C可能需要100行甚至更多.
2. 速度:`ython的运行速度相较与C,慢
* Python和Java、C#
1. 使用:Linux原装Python,其他语言没有;以上几门语言都有非常丰富的类库支持
2. 速度:Python在速度上稍显逊色
[2] 种类
* Cpython
* Python的官方版本,C语言实现,使用广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。
* Jyhton
* Python的Java实现,Jython会将Python代码动态编译成Java字节码,然后在JVM上运行。
* IronPython
* Python的C#实现,IronPython将Python代码编译成C#字节码,然后在CLR上运行。(与Jython类似)
* PyPy(特殊)
* Python实现的Python,将Python的字节码字节码再编译成机器码。
* 其它python
七、环境搭建
[1] Windows下安装Python
* 下载安装包
* 安装
* 默认安装路径:C:\python27
* 配置环境变量
【右键计算机】-->【属性】-->【高级系统设置】-->【高级】-->【环境变量】-->【在第二个内容框中找到 变量名为Path 的一行,双击】--> 【Python安装目录追加到变值值中,用`;`分割】
PS:系统默认值`;``C:\python27`,切记前面有`分号`
[2] linux下安装Python
无需安装,原装Python环境
ps:如果自带2.6,请更新至2.7
[3] linux下更新Python版本
- Linux的yum依赖自带Python,为防止错误,更新其实就是再安装一个Python的过程
- 查看默认Python版本
python -V
- 安装gcc,用于编译Python源码
yum install -y gcc
- 下载源码包
wget https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tgz
- 解压并进入源码文件
tar xf Python-2.7.12.tgz
- 编译安装
cd Python-2.7.12
./configure
make
make install
- 查看版本
/usr/local/bin/python2.7 -V
- 修改默认Python版本
mv /usr/bin/python /usr/bin/python2.6
ln -s /usr/local/bin/python2.7 /usr/bin/python
- 防止yum执行异常,修改yum使用的Python版本
vi /usr/bin/yum
将头部 #!/usr/bin/python 修改为 #!/usr/bin/python2.6