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

小咪咪 2021-11-17 09:16 366阅读 0赞

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)

18094749-427d5c5e1fc649ad84cf4079ba4d1fe9.jpg

内部机理:

(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类型声明的能力。

第三章 运行程序

交互提示模式下编写代码

18094817-5b9811b922744d7a8063c2f65bb2d999.jpg

退出: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同!

18094903-97ce4bfd4a5048d0afc1d3f4dd6ccc1f.jpg

安装目录在C:\python30\;

18094856-23d036a7994a47f49ff2fe8de2ce5e0f.jpg

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

18094913-7b8cf263a3174ce5b3a2747bd79ddbc5.jpg

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

18094930-1776757db7ca4fce9f05a7f888929c0e.jpg

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

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

UNIX下可执行脚本(#!)

两个特征

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

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

模块的导入与重载

导入:

18095035-4f6d5dabbb96453883a33b2e6d020f3e.jpg

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

18095100-e6c83b36b1904a7baea95456717befe3.jpg

重载:

18095109-2cf2150592d848508cfba99aa5676f92.jpg

模块与命名空间

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

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

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

exec运行模块文件

避免导入模块以及重载;

18095129-ab60008a924e48e4b49ce31485636fe4.jpg

缺点:

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

18095242-a4f51753a52f4b299b130384a19ddb82.jpg

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

发表评论

表情:
评论列表 (有 0 条评论,366人围观)

还没有评论,来说两句吧...

相关阅读

    相关 第一部分:C#语言基础

    第1章 C\类型基础 C\中的两种类型:值类型和引用类型 1.1 值类型和引用类型 值类型包括了结构和枚举,引用类型则包括了类、接口、委托等。还有一种特殊的值类型