每日学习笔记(4)

1,字典的输出

  
  
  
  
  1. person = {'name':'james','age':22}  
  2. print("%(name)s,%(age)d" % person)  
  3.  
  4. import string  
  5. person = {'name':'james','age':22}  
  6. t = string.Template("$name is $age")  
  7. print(t.substitute(person)) 

2python模块的安装

假设有下述MyClass模块,

  
  
  
  
  1. class MyClass:  
  2.     def __init__(self, name, age):  
  3.         self.name = name  
  4.         self.age = age  
  5.     def printInfo(self):  
  6.         print "%s, %d" % (self.name,self.age)  
  7.  
  8. if __name__ == '__main__':  
  9.     c = MyClass()  
  10.     c.printInfo() 

我们可以使用distutils来为其制作安装包,首先需要创建一个名为setup.py的安装脚本,脚本内容如下:

  
  
  
  
  1. from distutils.core import setup  
  2.  
  3. setup(name = 'MyClass',  
  4.       version = '1.0',  
  5.       py_modules = ['MyClass'],  
  6.       ) 

然后执行下述命令:

  
  
  
  
  1. python setup.py sdist 

这样就产生了MANIFESTdist目录,后者包含了MyClass-1.0.tar.gz。我们可以将MyClass-1.0.tar.gz置于了另一个linux系统来安装此模块,

首先解压缩:

  
  
  
  
  1. gunzip MyClass-1.0.tar.gz  
  2. tar xvf MyClass-1.0.tar 

解压完成后,可以看到此压缩包中包含了MyClass.py,setup.py,PKG-INFO三个文件

然后用下述命令来完成安装:

  
  
  
  
  1. python setup.py install 

3,listremove方法只是删除找到的第一个元素,并不是删除全部

4,若一个truple只包含一个元素,则应当在此元素后有一个逗号,例如 x = (True,)

5,print函数可以用来进行io重定向,

  
  
  
  
  1. f = open('d:/1.txt','w')  
  2. print('hello','world',sep=',',ffile=f)  
  3. f.close() 

6,python中的True,False很有趣,比如 0 in[True,False] 会返回什么值呢?这篇文章python源码的角度对此进行了分析,非常深刻

7,List Comprehension 

  
  
  
  
  1. a = [1,2,3]  
  2. [num*2 for num in a] 

我们从右往左看,首先对a进行遍历,每次将一个元素赋给变量num,然后将num*2的值添加到返回列表中,甚至还可以这样:

  
  
  
  
  1. import os,glob  
  2. [file for file in glob.glob(‘*.py’) if os.stat(file).st_size > 6000]  

这就只返回搜索到的py文件中大小大于6000的文件

8,lambda函数:

  
  
  
  
  1. import os  
  2.  
  3. def split_fully(path):  
  4.     parent_path, name = os.path.split(path)  
  5.     if name == '':  
  6.         return (parent_path,)  
  7.     else:  
  8.         return split_fully(parent_path) + (name,)  
  9. def filterRule(num):  
  10.     return (num%2 == 0);  
  11.  
  12. def NormalFilter():  
  13.     arr = [1,2,3,4,6,7,8]  
  14.     result = filter(filterRule,arr)  
  15.     print result  
  16. def FilterByLambda():  
  17.     arr = [1,2,3,4,6,7,8]  
  18.     result = filter(lambda x: x%2 == 0,arr)  
  19.     print result   
  20. def FilterByLambda_2():  
  21.     arr = [1,2,3,4,6,7,8]  
  22.     ruleFunc = lambda x: x%2 == 0  
  23.     result = filter(ruleFunc,arr)  
  24.     print result  
  25. def testMap():  
  26.     arr = [1,2,3,4,5,6]  
  27.     result = map(lambda x: "the num is %d" % x, arr)  
  28.     print result  
  29. def testMapWithList():  
  30.     arr = [[1,2,3],[4,5,6],[7,8,9]]  
  31.     result = map(lambda list: [list[1],list[0],list[2]],arr)  
  32.     print result  
  33.       
  34. if __name__ == "__main__":  
  35.     path = split_fully("/home/phinecos")  
  36.     print path  
  37.     NormalFilter()  
  38.     FilterByLambda()  
  39.     FilterByLambda_2()  
  40.     testMap()  
  41.     testMapWithList() 

有一点值得注意,在python3.1中map和filter函数返回的是一个iterator,但以前的版本返回的是一个list,因此,若使用python3.1,则输出的语句应该改成: 

  
  
  
  
  1. print(*result) 

 

你可能感兴趣的:(python,职场,休闲)