python2.7.11 测试环境为Linux
在Python 2.x中,print还可以是一个关键字,可写成print 'Hello World!',但这在3.x中行不通
#!/usr/bin/env python print('Hello World!')
>>>print type(a)
>>>a = 10
tuple和list的主要区别在于,一旦建立,tuple的各个元素不可再变更,而list的各个元素可以再变更。
字符串是一种特殊的元素,因此可以执行元组的相关操作
Python函数range(),来帮助你建立表
idx = range(5) print idx
可以看到idx是[0,1,2,3,4]
在Python中,当程序执行到return的时候,程序将停止执行函数内余下的语句。return并不是必须的,当没有return, 或者return后面没有返回值时,函数将自动返回None
one是Python中的一个特别的数据类型,用来表示什么都没有,
相当于C中的NULL。None多用于关键字参数传递的默认值
Python的整个概念是基于对象的。
__init__()方法
__init__()是一个特殊方法(special method)。Python有一些特殊方法。Python会特殊的对待它们。特殊方法的特点是名字前后有两个下划线。
如果你在类中定义了__init__()这个方法,创建对象时,Python会自动调用这个方法。这个过程也叫初始化。
需要先要介绍两个内置函数,dir()和help()
dir()用来查询一个类或者对象所有属性。
help()用来查询的说明文档。
list是一个类
在上面以及看到,表是Python已经定义好的一个类。当我们新建一个表时,比如:
>>>nl = [1,2,5,3,5]
实际上,nl是类list的一个对象。
del是Python中保留的关键字,用于删除对象
在Python中,一个.py文件就构成一个模块
必须包含一个__init__.py的文件,提醒Python,该文件夹为一个模块包。__init__.py可以是一个空文件。
包裹传递
在定义函数时,我们有时候并不知道调用的时候会传递多少个参数。这时候,包裹(packing)位置参数,或者包裹关键字参数,来进行参数传递,会非常有用。
def func(*name): print type(name) print name func(1,4,6)
func(5,6,7,1,2,3)
为了提醒Python参数,name是包裹位置传递所用的元组名,在定义func时,在name前加*号。
包裹传递的关键在于定义函数时,在相应元组或字典前加*或**。
所谓的解包裹,就是在传递tuple时,让tuple的每一个元素对应一个位置参数。在调用func时使用*,
是为了提醒Python:我想要把args拆成分散的三个元素,分别传递给a,b,c。
(设想一下在调用func时,args前面没有*会是什么后果?)
def func(a,b,c): print a,b,c args = (1,3,4) func(*args)
可以利用lambda函数的语法,定义函数
func = lambda x,y: x + y
print func(3,4)
以上定义可以写成以下形式:
def func(x, y): return x + y