现在的位置: 首页 > 综合 > 正文

python别人的学习笔记

2013年12月01日 ⁄ 综合 ⁄ 共 2479字 ⁄ 字号 评论关闭

为了便于查找,在这贴一些python基础知识,随时更新。

by FW

http://blog.csdn.net/adrianfeng/archive/2010/09/13/5881353.aspx

转载请注明

 

列表:

列表中用for

去掉列表中每个元素头尾的空格 
>>> freshfruit = ['  banana', '  loganberry ', 'passion fruit  '] 
>>> [str.strip() for str in freshfruit] 
['banana', 'loganberry', 'passion fruit'] 

把列表中,大于3的元素,乘以2 
>>> vec = [2, 4, 6] 
>>> [2*x for x in vec if x > 3] 
[8, 12] 

把列表1的每一个元素和列表2的每一个元素相乘 
>>> lst1 = [2, 4, 6] 
>>> lst2 = [4, 3, -9] 
>>> [x*y for x in lst1 for y in lst2] 
[8, 6, -18, 16, 12, -36, 24, 18, -54] 

获取[0-10)的平方 
[x**2 for x in range(10)] 

或 
map(lambda x : x*x, range(10)) 

获取[0-10)中奇数的平方 
[x**2 for x in filter( lambda x : x%2, range(10) )]

 

删除列表中的元素

del语句用来删除一个List的一个元素或是几个连续的元素,也就是一个slice:

 


 

>>> a = [-1, 1, 66.6, 333, 333, 1234.5]
>>> del a[0]
>>> a
[1, 66.6, 333, 333, 1234.5]
>>> del a[2:4]
>>> a
[1, 66.6, 1234.5]

del语句也可以用来删除整个变量:

>>>del a
还可以:
del a[:]

range函数

range(1,5) => [1,2,3,4]
range(5) => [0,1,2,3,4]
range(1,5,2) => [1,3]

获取列表长度:

len(lst)

列表寻址:

t = ['a', 'b', 'c', 'd', 'e', 'f']
t[1:3]  => ['b', 'c']
t[:3]   => ['a', 'b', 'c']
t[3:]   => ['d', 'e', 'f']
t[:]    => ['a', 'b', 'c', 'd', 'e', 'f']

 

 

函数:

匿名函数:

 

 

>>> def f(x):
...     return x*2
...     
>>> f(3)
6
>>> g = lambda x: x*2>>> g(3)
6
>>> (lambda x: x*2)(3)6
这是一个 lambda 函数,完成同上面普通函数相同的事情。注意这里的简短的语法:在参数列表周围没有括号,而且忽略了 return 关键字 (隐含存在,因为整个函数只有一行)。而且,该函数没有函数名称,但是可以将它赋值给一个变量进行调用。
使用 lambda 函数时甚至不需要将它赋值给一个变量。这可能不是世上最有用的东西,它只是展示了 lambda 函数只是一个内联函数。

总的来说,lambda 函数可以接收任意多个参数 (包括可选参数) 并且返回单个表达式的值。lambda 函数不能包含命令,包含的表达式不能超过一个。不要试图向 lambda 函数中塞入太多的东西;如果你需要更复杂的东西,应该定义一个普通函数,然后想让它多长就多长。

 

  1. # lambda.py  
  2. def fun1(n):  
  3.     return lambda m:m**n  
  4.   
  5. def fun2(m, n):  
  6.     return m+n  
  7.   
  8. # 演示通常的lambda用法  
  9. f1 = lambda x,y,z: x*2+y+z  
  10. print f1(3,2,1)  
  11.   
  12. # 动态生成一个函数  
  13. f2 = fun1(2)  
  14. print f2(4)  
  15.   
  16. # lambda用作函数参数的写法  
  17. print fun2(3, (lambda x:x+1)(2))  

 

类:

类的实例属性和静态属性:

所有的示例属性必须以self作为前缀

  1. class Demo():  
  2.     #静态属性  
  3.     staticattr=0  
  4.     def __init__(self):  
  5.         #对象属性  
  6.         self.objattr=0  

 

类的私有成员:

python的私有成员通过名字区分,以两个下划线开头的为私有成员。

也可以强制访问私有成员:

instance._classname__attribute

其中,instance为对象名,classname为类名,attribute为属性

动态增加函数:

可以先定义一个函数,然后动态的增加到类的方法里。

  1. def f1(self):  
  2.     print 'f1'  
  3. class Demo:  
  4.     pass  
  5. Demo.fun=f1  

构造函数:

python的__int__函数类似于c++的构造函数,子类的构造函数必须先调用父类的构造函数

内置属性:

__dict__       属性组成字典

__module__  类名所在模块名

__class__      类名

  1. class Ca():  
  2.     data=0  
  3.     def __init__(self):  
  4.         self.d=0  
  5.         self.c=0  
  6. print  
  7. test=Ca()  
  8. print 'test.__class__:',test.__class__  
  9. print 'test.__dict__:',test.__dict__  
  10. print 'test.__module__:',test.__module__  

 

输出(注意并没有输出静态变量):

test.__class__: __main__.Ca
test.__dict__: {'c': 0, 'd': 0}
test.__module__: __main__

多态实现:

isinstance可以判断对象是否属于一个类:

  1. class Cbase:  

抱歉!评论已关闭.