Python 学习手册 第一部分 基础篇

Python 脚本通《Learning Python》  介绍Python

《Programming Python》  做什么 --> Web GUI Database

《Python Pocket Reference》  额外资料

Python 2.X 过渡到 Python 3.X  Python 3 是未来的发展方向

 

 

第一部分  使用入门

 

第一章  问答

 

软件质量高

致力于可读性,具有比传统脚本语言更加优秀的可重用性和可维护性。

开发者效率高

大小只有C++或是Java的1/5 -- 1/3,解释行,可以立即运行,无需传统所必须的编译以及链接等步骤。

可移植性好

绝大多数不做任何改变即可在所有主流计算机平台上运行。Python提供了多种可选的独立程序,包括用户图形界面、数据库接入、基于Web的系统等。

标准库支持

涵盖了从字符模式到网络脚本模式的匹配;第三方支持工具包括网站开发、数值计算、串口读写、游戏开发等各个方面。

组件集成

通过灵活的集成机制轻松地与应用程序其他部分进行通信。是Python成为产品定制和拓展工具。可以调用C和C++的库,也可被C和C++等调用,与Java组件集成,与COM和.NET进行通信,通过SOAP、XML-RPC和CORBA等接口与网络进行交互。

享受乐趣

避免繁琐、享受乐趣。

 

缺憾

执行速度不够快

源代码语句 à 编译 /转换 à 字节码 à 解释执行

 

优点

面向对象

free(开源)

可移植

功能强大 动态类型 自动内存管理 大型程序支持 内置对象支持 内置工具 库工具

第三方工具

可混合 Python  C  C++

简单易用 “可执行的伪代码” 简单易学

 

第二章 Python 如何运行程序

 

Python 解释器简介

解释器:代码与机器在计算机硬件之间的软件逻辑层。

典型:

print('hello world')// print("hello world") 也成立

print(2**100)

 

 

内部机理:

(1)       源程序执行 *.py

(2)       Python 内部将源代码转换成为字节码 *.pyc

保存字节码文件,作为启动速度的优化,再次执行源代码,检查时间戳,若为更改,则直接加载 *.pyc,跳过编译。

若Python无法在机器上写入字节码,字节码将会在内存中生成,执行结束后简单丢弃。

(3)       *.pyc文件发送到Python虚拟机中(PVM),PVM只是一个迭代运行字节码指令的大循环,是Python的运行引擎,是运行实际脚本的组件,是所谓“Python解释器”的最后一步。

 

纯Python的运行速度介于传统的编译语言和传统的解释语言之间,Python所有的事情都是发生在运行时的,是有动态的。

 

Python的实现:

(1)       CPython

标准的Python实现方式;运行速度最快、最完整、最健全。

预装的、以及从http://www.python.org上获取的基本都是CPython。

(2)       JPython

为了与Java编程语言集成;JPython包含了Java类,这些类编译Python源代码,形成Java字节码,映射到Java虚拟机上(JVM)。

目标是让Python代码脚本化Java应用程序,实现与Java的无缝集成。

(3)       IronPython

目标是Python可以与windows 平台上的 .NET 框架以及对应的 Linux 上开源的Mono编写成的应用相集成,既可作为服务器端,也可作为客户端上的组件。

即将Python源代码转换成  .NET 对应的等效执行环境。

 

执行优化工具:

Psyco:拓展字节码执行模块的组件,是PVM的增强工具,将部分字节码转换成底层的真正的二进制机器代码,让程序运行的更快。

支持到 Python2.7,现已由 PyPy 代替;http://zh.wikipedia.org/wiki/PyPy

PyPy做到了Psyco未曾实现的动态编译。

 

Shedskin C++ 转换器:尝试将Python代码转换成为 C++代码,采用机器中的C++编译器将其编译成机器代码。仍是一个实验性项目!

 

冻结二进制文件(Frozen Binary)

冻结二进制文件 à 将Python 转换为可独立执行的二进制代码文件

冻结二进制文件将程序的字节码、PVM、以及任何程序所需要的Python支持文件捆绑在一起形成一个单独的文件包。

三种能够生成冻结二进制文件的系统:py2exe(Windows)、PyInstaller(Linux 及 UNIX,能够生成自安装的二进制文件)、freeze(最初始的版本)。都是免费的,可以自己获取。

参考:http://www.python.org 以及 http://www.vex.net/parnassus/

冻结二进制文件与真实编译输出结果有所不同:他们通过虚拟机运行字节码。也就是说如果离开了必要的初始改进,冻结二进制文件与最初的源代码执行速度是相同的。

 

其他执行方案:

Stackless Python: 标准CPython实现的一个变体,不会在C语言调用栈上保存状态。

Cython:它为Python代码结合了调用C函数以及使用变量、参数和类属性的C类型声明的能力。

 

第三章 运行程序

 

交互提示模式下编写代码

退出:UNIX  : ctrl-D           Mac OS / Windows : ctrl-Z

不能在交互模式中编写大量的代码,且其不会保存在文本文件中,适合体验语言。

可以采用交互模式实验不懂的语法、测试程序组件!

问题:

(1)       只能够输入Python命令;

(2)       在文件中打印语句print是必须的,在交互模式下不需要;

(3)       目前,交互模式下不需要缩进;

(4)       留意提示符的变换和复合语句; Ctrl-C 返回主模式

(5)       用一个空行结束复合语句;按下Enter键两次。

(6)       交互模式下一次运行一条语句。

 

脚本文件、命令行模式运行文件

Windows下:

切换到脚本文件所在目录,执行脚本;

(1)       若已经修改Path值,则直接命令执行

 (2)       若为修改,则需要输入安装Python的完整路径

与Java同!

 

安装目录在C:\python30\; 

安装目录在C:\python30\; 脚本目录在:C:\code\

 

由于新的Windows系统使用注册表能够找到相应的执行程序,所以可以省略Python命令。

 

Windows 双击脚本文件,可直接运行,也许不会看到打印的输出或是错误的提示,会一闪而过,需要调整!

在脚本后面加上 input() ,正确的执行脚本即可短暂停留;Enter键退出。

 

UNIX下可执行脚本(#!)

两个特征

(1)       第一行是特定的;往往以 #! 开始;

(2)       往往都拥有可执行的权限; chmod+x file.py 实现;

 

模块的导入与重载

导入:

 

一次导入后,再次导入则不会再工作:

 

重载:

 

模块与命名空间

模块式Python程序最大的程序结构,导入是一种有效的运行代码的方式;

每一个模块式一个独立完整的变量包,即一个命名空间。

Import 与 reload是一种常用的测试方法;不建议使用其启动程序;

 

exec运行模块文件

避免导入模块以及重载;

 

缺点:

由于exec相当于将代码粘贴到调用它的代码处,对当前正在使用的变量有潜在的默认覆盖的可能;

 

 

IDLE 用户界面(建议初学者使用!!)

能够编辑、运行、浏览和调试Python程序的GUI;

Windows 下开始菜单内即有,安装目录下同;

UNIX下在命令行中启动IDLE顶层脚本。

 

可用替代品IDE:

Eclipse和PyDev插件:流行的、强大的;

Komodo:http://www.activestate.com 下载,非免费;

NetBeans IDE Python:强大;

PythonWin:Free,只局限于Windows平台;可从http://www.python.org 上获得;

Google 搜索 “Python editors” Wiki界面上有介绍;

 

嵌入式调用:

Python代买嵌入到C 、Java等代码中执行;

冻结二进制文件执行:

运行单个可执行的包;

文本编辑器启动:

http://www.python.org/editors

 

调试建议:

print语句、pdb单步执行、使用IDE GUI调试器等;

转载于:https://www.cnblogs.com/codeboy/archive/2013/03/18/codeboy-cnblogs.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值