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