转载自:http://www.cnblogs.com/renzo/archive/2011/08/08/2131146.html
一,简介
Python(KK 英语发音:/'pa θɑn/, DJ 英语发音:/ paiθ n/)是一种面向对象、直译式计算机程序设计语言,也是一种功能强大而完善的通用型语言,创始人为Guido van Rossum。这种语言具有非常简捷而清晰的语法特点,适合完成各种高层任务,几乎可以在所有的操作系统中运行。Python具有丰富和强大的类库,足以支持绝大多数日常应用。Python常被昵称为胶水语言,可扩充性可说是Python作为一种编程语言的特色。新的内置模块(module)可用 C 或 C++ 写成,它能很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松联结在一起。
Python在执行时,首先会将.py文件中的源代码编译成Python的byte code(字节码),然后再由Python Virtual Machine来执行这些编译好的byte code。这种机制的基本思想跟Java,.NET是一致的。基于C的Python编译出的字节码文件,通常是.pyc格式。
二,"Hello World" 程序
1#!/usr/bin/python
2
3print"Hello World!"
1 $ python helloWorld.py
2 Hello World!
如果你得到的输出跟上面一样,那么已成功运行第一个Python程序;万一得到一个错误,请确保你键入的程序准确无误。注意,Python是区分大小的,而且是严格控制缩进的。
三,数据类型
Python有4种类型的数:整数、长整数、浮点数和复数。
字符串的表示,可以用单引号、双引号、三引号和转义符。
None,是Python中表示没有任何东西的特殊类型。
四,标识符的命名规则
五,运算符
算术运算符 | 位运算符 | 关系运算符 | 逻辑运算符 | ||||
+ | 加 | << | 左移 | < | 小于 | not | 布尔“非” |
- | 减 | >> | 右移 | > | 大于 | and | 布尔“且” |
* | 乘 | & | 与 | <= | 小于等于 | or | 布尔“或” |
** | 冥 | | | 或 | >= | 大于等于 | ||
/ | 除 | ^ | 异或 | == | 等于 | ||
// | 整除 | ~ | 翻转 | != | 不等于 | ||
% | 取余 |
六,控制流
#!/usr/bin/python
i = 5
while i:
print"Processing... ",i
i = i-1
else :
print"Done",i
$ python while.py
Processing... 5
Processing... 4
Processing... 3
Processing... 2
Processing... 1
Done 0
#!/usr/bin/python
for i in range(1,5):
print"Processing",i
else :
print"Done",i
$ python for.py
Processing 1
Processing 2
Processing 3
Processing 4
Done 4
七,函数
函数通过def关键字定义。def关键字后跟一个函数的标识符名称,然后跟一对圆括号。圆括号之中可以包含一些变量名,该行以冒号结尾。接下来似乎一块语句,她们是函数体。
#!/usr/bin/python
def HelloWorld():
print"Hello World!"
HelloWorld()
$ python function.py
Hello World!
#!/usr/bin/python
def HelloWorld(Message="Renzo"):
print"Hello",Message
HelloWorld()
HelloWorld("Python")
$ python function.py
Hello Renzo
Hello Python
八,模块
使用sys模块:
#!/usr/bin/python
import sys
print"The Python Path is",sys.path
for ARGV in sys.argv:
print ARGV
$ python system.py liu renzo
The Python Path is ['/usr/pa_instances/IBS_DVT', '/usr/lib64/python24.zip', '/usr/lib64/python2.4', '/usr/lib64/python2.4/plat-linux2', '/usr/lib64/python2.4/lib-tk', '/usr/lib64/python2.4/lib-dynload', '/usr/lib64/python2.4/site-packages', '/usr/lib64/python2.4/site-packages/Numeric', '/usr/lib64/python2.4/site-packages/gtk-2.0', '/usr/lib/python2.4/site-packages']
system.py
liu
renzo
$ python
Python 2.4.3 (#1, Jun 11 2009, 14:09:37)
[GCC 4.1.220080704 (Red Hat 4.1.2-44)] on linux2
Type "help", "copyright", "credits"or"license"for more information.
>>>import sys
>>> dir(sys)
['__displayhook__', '__doc__', '__excepthook__', '__name__', '__stderr__', '__stdin__', '__stdout__', '_getframe', 'api_version', 'argv', 'builtin_module_names', 'byteorder', 'call_tracing', 'callstats', 'copyright', 'displayhook', 'exc_clear', 'exc_info', 'exc_type', 'excepthook', 'exec_prefix', 'executable', 'exit', 'getcheckinterval', 'getdefaultencoding', 'getdlopenflags', 'getfilesystemencoding', 'getrecursionlimit', 'getrefcount', 'hexversion', 'maxint', 'maxunicode', 'meta_path', 'modules', 'path', 'path_hooks', 'path_importer_cache', 'platform', 'prefix', 'ps1', 'ps2', 'setcheckinterval', 'setdlopenflags', 'setprofile', 'setrecursionlimit', 'settrace', 'stderr', 'stdin', 'stdout', 'version', 'version_info', 'warnoptions']
>>> 0.
九,数据结构
Python中有三种内建的数据结构:列表、元组和字典。
1. 列表
list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个序列的项目。列表中的项目应该包括在方括号中,这样Python就知道这是一个列表。一旦创建了一个列表,你就可以添加、删除或是搜索列表中的项目。列表是可变的数据类型。
2. 元组
元组跟列表十分相似,只不过元组跟字符串一样是不可变的。元组通过圆括号中用逗号分隔的项目定义。
元组通常的用法是在打印语句中:
#!/usr/bin/python
age =28
name ="Renzo"
print"My name is %s, and I'm %d years old"%(name,age)
$ python tuple.py
My name is Renzo, and I'm 28 years old
3. 字典
把键跟值联系在一起。键必须是唯一的,而且只能是不可变对象。字典通过花括号用逗号分隔并且键与值用冒号分开的项目定义。
十,面向对象编程
在程序中根据操作数据的函数或语句块来设计程序,这被称为面向过程的编程。还有一种把数据和功能结合起来,用称为对象的东西包裹起来组织程序的方法,称为面向对象的编程。类,使用class关键字创建。类的域或方法被列在一个缩进块中。
类的方法跟普通函数只有一个区别——他们必须有一个额外的第一个参数名称,但是在调用这个方法的时候不用为这个参数赋值,Python会提供这个值。这个特别的对象指对象本身,按照惯例他的名称是self。
使用对象的方法:
#!/usr/bin/python
class MyClass:
def Hello(self):
print"Hello World!"
MyObject = MyClass()
MyObject.Hello()
$ python object.py
Hello World!
#!/usr/bin/python
class MyClass:
def__init__(self,message):
self.message = message
def Hello(self):
print"Hello %s!"%self.message
MyObject = MyClass("Renzo")
MyObject.Hello()
$ python object.py
Hello Renzo!
注意:我们没有专门调用__init__方法,只是在创建一个类的新实例的时候,把参数包括在圆括号内跟在类名后面,从而传递给__init__方法。
例外:如果使用的数据成员名称以双下划线前缀,Python就会把他作他作为私有变量,这样这个变量只能在类或对象中使用。
十一,Python拓展