这两天笔者几篇文章分析了改运行执行的文章. 关联文章的地址
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调试器等;
文章结束给大家分享下程序员的一些笑话语录: 据说有一位软件工程师,一位硬件工程师和一位项目经理同坐车参加研讨会。不幸在从盘山公路下山时坏在半路上了。于是两位工程师和一位经理就如何修车的问题展开了讨论。
硬件工程师说:“我可以用随身携带的瑞士军刀把车坏的部分拆下来,找出原因,排除故障。”
项目经理说:“根据经营管理学,应该召开会议,根据问题现状写出需求报告,制订计划,编写日程安排,逐步逼近,alpha测试,beta1测试和beta2测试解决问题。”
软件工程说:“咱们还是应该把车推回山顶再开下来,看看问题是否重复发生。”