己所不欲勿施于人!
全部博文(80)
分类: Python/Ruby
2013-04-28 14:31:19
注释
和大部分脚本语言一样,Python也是用#标示注释。
变量与赋值
Python是动态类型语言,也就是说不需要预先声明变量的类型。
变量的声明也没有相应的关键字,
例如
conter = 0 #整数赋值
miles = 1000.0 #浮点数赋值
name = ‘liwei’ #字符串赋值
counter = counter + 1 #对整数加1
n = n*10
数字
Python 支持五种基本数据类型,其中有三种是整数类型。
字符串
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
...
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