Python学习笔记(一)

最近打算花点时间学习下 python,顺便纪录下整个学习过程,同时加强记忆。
  • 什么是python?
 Python是一门优雅而健壮的编程语言,继承了传统编译语言的强大性和通用性,同时借鉴了简单脚本和解释语言的易用性。只有你想不到的,没有做不到的!
 发明者:贵铎·范·罗萨姆(Guido van Rossum)于 1989 年底始创了 Python,( ABC、C)
  • python特点
1)高级
与Tcl、Perl一样具有强大的、可以进行系统调用的解释性脚本语言,都有内置高级数据结构 列表(可变数组)、字典(哈希表)
 
2)面向对象
python支持面向对象,绝不象java、ruby仅仅是一门面向对象语言,融汇了多种编码风格。如Lisp、Haskell这类函数语言特性
[Lisp:表处理语言,lisp拥有理论上最高的运算能力。lisp在cad绘图软件上的应用非常广泛,普通用户均可以用lisp编写出各种定制的绘图命令。]
[Haskell是一种标准化的,通用纯函数式编程语言,有非限定性语义和强静态类型。它的命名源自美国逻辑学家Haskell Brooks Curry,他在数学逻辑方面的工作使得函数式编程语言有了广泛的基础]
 
3)可升级
“可升级”这个术语最经常用于衡量硬件的负载,通常指为系统添加了新的硬件后带来的性能提升。我们乐于在这里对这个引述概念加以区分,我们试图用“可升级”来传达一种观念,这就是:Python 提供了基本的
开发模块,你可以在它上面开发你的软件,而且当这些需要 扩展和增长时,Python 的可插入性和模块化架构则能使你的项目生机盎然和易于管理.
 
4)  可扩展
可扩展性和可嵌入性。在计算机内部,Python解释器借鉴了Java虚拟机的优点,把代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。这种特性不但可以使Python轻松实现跨平台,还为Python的扩展性    
和可嵌入性提供了先天的优势。如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。同样地,你也可以把Python嵌入你的C/C++程序,从而向你   
的程序用户提供脚本功能。
因为 Python 的标准实现是使用 C 语言完成的(也就是 CPython),所以要使用 C 和 C++ 编写 Python 扩展。Python 的 Java 实现被称作 Jython,要使用 Java 编写其扩展。最后, 还有 IronPython,这是针对 .NET 或 Mono 平台的 C# 实现。你可以使用 C# 或者VB.Net扩展 IronPython。
 
5)可移植性
因为 Python 是用 C 写的,又由于 C 的可移植性,使得 Python 可以运行 在任何带有 ANSI C 编译器的平台上。尽管有一些针对不同平台开发的特有模块,但是在任何一 个平台上用 Python 开发的通用软件都可以稍事修改或者原封不动的在其他平台上运行。这种可移植性既适用于不同的架构,也适用于不同的操作系统,包括Linux、Windows、FreeBSD、 Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE甚至还有PocketPC、Symbian以及Google基于linux开发的android平台!  
 
6)易学
解释型脚本语言,关键字少、结构简单、语法清晰,易上手。
 
7)易读
语句的分组是用缩进而不是开始大括号和结束大括号。(一行非常长的代码要注意缩进格式,这对开发人员来说也有点不方便);
不需要定义变量和参数;
没有其他语言通常用来访问变量、定义代码块和进行模式匹配的命令式符号
同样
 
8)易维护
这个特点暂时还没有体会到
 
9)健壮性
Python 提供了“安全合理”的退出机制,让程序员能掌控局面(堆栈跟踪)
 
10)高效的快速原型开发工具
Python 有许多面向其他系统的接口, 它的功能足够强大,本身也足够强壮,所以完全可以使用 Python 开发整个系统的原型;
丰富的标准库,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。只要安装了Python,所有这些功能都将是可用的。这被称作Python的“功能齐全”理念。除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等;
丰富的即插即用的第三方模块
 
11)内存管理器
内存管理是由 Python 解释器负责的,与其他高级语言相似,无序开发人员介入,减少内存错误
 
 
12)解释性和(字节)编译性
Python 是一种解释型语言,这意味着开发过程中没有了编译这个环节。一般来说,由于不是以本地机器码运行,纯粹的解释型语言通常比编译型语言运行的慢。然而,类似于 Java,Python 实际上是字节编译的,其结果就是可以生成一种近似机器语言的中间形式。这不仅改善了 Python 的性能,还同时使它保持了解释型语言的优点。
 
13)免费、开源(这个不能忘记哦)
 

python和php同样是解释型语言,由虚拟机解释执行。

优缺点:
1.python是面向对象的语言,php是面向过程的,不过php4、5有了面向对象的支持。但phper一直采用面向对象的方法开发。
2.python除了像php可以使用C\C++扩展外,还可以嵌入到C/C++程序,向程序用户提供脚本功能。这点与Lua很相像。这是也“python常被昵称为胶水语言,它能够很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松地联结在一起。”的原因。
3.某些语法上不如php灵活,如必须“用缩进来区分语句关系”、“很多时候不能将程序连写成一行”。
4.python的架构选择太多,造成开发人员沟通、合作开发较困难。
5.php可以使用缓存opcode的办法来提高执行速度。
6.python可以用来开放跨平台的GUI。

所以python和Lua一样适合处理逻辑较多的脚本语言,而php适合做动态页面的展示。
 

相同点: 都是动态类型的解释型高级脚本语言。

不同点既各自优缺点:
PHP名称的含义是“超文本预处理器”。
仅则一个名称就说明了PHP的着重点,也是长处
1、文本处理。text,意味擅长所有的文本处理
2、超文本处理,HyperText,意味尤其擅长HTML超文本标记语言的文本处理。
3、超文本预处理,HyperText Preprocessor,一个“预”字,意味擅长HTTP超文本传输协议之上的服务端上的所有应用的处理。
也就是说,PHP有个互联网专门化的方向,现在专门化也是所有行业的趋势。

Python比较通用,就是什么都能干一点。能做WEB相关的但没有php那么专门化和无微不至。
语法简洁,由于为了通用,python的数据结构工具也比较轻量级一点,实现复杂算法的资源开销比PHP稍低,裸运行的速度也比php稍快。但在网络应用上,这点速度差距在网络IO面前都可以忽略不计。 python作为通用脚本,也广泛被嵌入/捆绑入一些3D工具、绘图工具、数学工具、游戏中作为高级流程部分的描述。

语法方面,PHP的语法属于C系,继承了C++和Java的很多历史优点。

Python的语法,吸收了一些现代语言元素,比如靠缩进决定层次、lambda表达式,数列产生器,一级函数对象。
 
 
 
参考:
 

 

posted @ 2013-01-22 00:30  flat_peach  阅读(3650)  评论(0编辑  收藏  举报