注释

和大部分脚本语言一样,Python也是用#标示注释。

变量与赋值

Python是动态类型语言,也就是说不需要预先声明变量的类型。

变量的声明也没有相应的关键字,

例如

conter = 0  #整数赋值

miles = 1000.0   #浮点数赋值

name = ‘liwei’   #字符串赋值

counter = counter + 1   #对整数加1

n = n*10

数字

Python 支持五种基本数据类型,其中有三种是整数类型。

int (有符号整型)

long (长整型)

bool(布尔型)

float(浮点型)

complex(复数)

字符串

Python支持使用成对的单引号或者双引号。

三引号(连续的三个单引号或者双引号)可以用来包含特殊字符。

使用索引运算符([ ])和切片运算符([ : ])可以得到子字符串。

字符串有其特有的索引规则:第一个字符的索引是0,最后一个字符的索引是 –1.

(+)加号用于字符串连接;星号(*)则用于字符串重复。

pystr = ‘python’

iscool = ‘is cool!’

>>>print pystr[0]

'p’

>>>pystr[2:5]

'tho’

>>> pystr + iscool

'pythonis cool'

>>> pystr*5

'pythonpythonpythonpythonpython'


列表和元组

可以将列表和元组当成普通的数组,他们能够保存任意数量任意类型的Python对象。

列表和元组的几点重要区别:

列表元素用[ ]包裹,元素的个数以及元素的值可以改变。

元组元素用小括号(())包裹,不可以更改。(尽管他们的内容可以)。

元组可以看成是只读的列表。

通过切片运算([ ]和[ : ])可以得到子集,这一点与字符串的使用方法一样。

列表:

>>> alist = [1,2,3,4]

>>> alist

[1, 2, 3, 4]

>>> alist[0]

1

>>> alist[2:]

[3, 4]

>>>


元组:

>>> aTuple = ('robots',77,93,'try')

>>> aTuple

('robots', 77, 93, 'try')

>>> aTuple[:3]

('robots', 77, 93)

>>> aTuple[1]=5

Traceback (most recent call last):

File "", line 1, in

TypeError: 'tuple' object does not support item assignment

字典

字典是Python中的映射数据类型,工作原理类似perl中的关联数组或者哈希表,由键-值(key-value)对组成。

几乎所有类型的Python对象都可以用作键。

值可以是任意类型的Python对象,字典元素用大括号({})包裹。

>>> aDict = {'host':'earth'}

>>> aDict['port'] = 80

>>> aDict

{'host': 'earth', 'port': 80}

>>> aDict.keys()

['host', 'port']

>>> aDict['host']

'earth'


>>> for key in aDict:

...          print key,aDict[key]

...

host earth

port 80

>>>

代码块&&流程控制语句

代码块通过缩进对齐表达代码逻辑而不是使用大括号,因为没有了额外的字符,程序的可读性更高。

if 语句

if expression:

if_suite

if…else

if expression:

if_suite

else:

else_suite


if expression1:

if_suite

elif expression2:

elif_suite

else:

else_suite

while 循环

while expression:

while_suite

for 循环

Python中的for接受可迭代对象(例如序列或者迭代器)作为其参数,每次迭代其中一个元素。

>>> for item in ['e-mail','net-surfing','homework','chat']:

...     print item

...

e-mail

net-surfing

homework

chat

在print item 后面增加一个,改变输出方式

>>> for item in ['e-mail','net-surfing','homework','chat']:

...     print item,

...

e-mail net-surfing homework chat


>>> foo = 'abc'

>>> for c in foo:

...     print c

...

a

b

c

>>> foo =['abc',123,999,010]

>>> for c in foo:

...     print c

...

abc

123

999

8

>>>

列表解析

这是一个让人欣喜的术语,表示你可以在一行中使用一个for循环将所有值放到一个列表当中

>>> squared =[x**2 for x in range(4)]   #x **2 x的平方

>>> for i in squared:

...     print i

...

0

1

4

9

>>>

列表解析可以做更复杂的事,比如挑选符合要求的值填入列表

>>> sqdEvents =[x **2 for x in range(8) if not x % 2]

>>> for i in sqdEvents:

...     print i

...

0

4

16

36

>>>

函数

类似其他的语言,Python中的函数使用小括号()调用。函数在调用之前必须先定义。

如果函数中没有return语句,就会自动返回None对象。

Python是通过应用调用的。这意味着函数内对参数的改变会影响到原始对象。不过事实上只有可变对象会受此影响,对不可变对象来说,他的行为类似按值调用。

定义函数:

def function_name([arguments]):

"optional documentation string”

function_suite

定义一个函数的语法由def 关键字以及紧随其后的函数名再加上该函数的需要的几个参数组成。

>>> def addme2me(x):

...     'apply + operation to argument'

...     return (x+x)

...

>>> addme2me(3)

6


类是面向对象编程的核心,它扮演相关数据及逻辑的容器角色。他们提供了创建“真实”对象(也就是实例)的蓝图。因为Python并不强求你以面向对象的方式编程(与java不同),

类的定义:

class ClassName(base_class[es]):

“optional documentation string”

static_member_declarations

method_declarations

使用class 关键字定义类。可以提供一个可选的父类或者说基类;如果没有合适的基类,那就使用object作为基类。class行之后是可选的文档字符串,静态成员定义,以及方法定义。

如何创建实例

fool = FooClass()

Created a class instance for John Doe

模块

模块是一种组织形式,他将彼此有关系的Python代码组织到一个个独立文件当中。

模块可以包含可执行代码,函数和类或者这些东西的组合。

当你创建了一个Python源文件,模块的名字就是不带.py后缀的文件名。一个模块创建之后,你可以从另一个模块是重用import语句导入这个模块来使用。

如何导入模块

import module_name

如何访问一个模块函数或者访问一个模块变量

module.function()

module.variable