每日学习笔记(4)

1,字典的输出

person  =  { ' name ' : ' james ' , ' age ' : 22 }
print ( " %(name)s,%(age)d "   %  person)

import  string
person 
=  { ' name ' : ' james ' , ' age ' : 22 }
=  string.Template( " $name is $age " )
print (t.substitute(person))

2python模块的安装

假设有下述MyClass模块,

代码
class  MyClass:
    
def   __init__ (self, name, age):
        self.name 
=  name
        self.age 
=  age
    
def  printInfo(self):
        
print   " %s, %d "   %  (self.name,self.age)

if   __name__   ==   ' __main__ ' :
    c 
=  MyClass()
    c.printInfo()

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

from  distutils.core  import  setup

setup(name 
=   ' MyClass ' ,
      version 
=   ' 1.0 ' ,
      py_modules 
=  [ ' MyClass ' ],
      )

然后执行下述命令:

python setup.py sdist

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

首先解压缩:

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

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

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

python setup . py install

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

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

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

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

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

7,List Comprehension 

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

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

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

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

8,lambda函数:

代码
import  os

def  split_fully(path):
    parent_path, name 
=  os.path.split(path)
    
if  name  ==   '' :
        
return  (parent_path,)
    
else :
        
return  split_fully(parent_path)  +  (name,)
def  filterRule(num):
    
return  (num % 2   ==  0);

def  NormalFilter():
    arr 
=  [ 1 , 2 , 3 , 4 , 6 , 7 , 8 ]
    result 
=  filter(filterRule,arr)
    
print  result
def  FilterByLambda():
    arr 
=  [ 1 , 2 , 3 , 4 , 6 , 7 , 8 ]
    result 
=  filter( lambda  x: x % 2   ==  0,arr)
    
print  result 
def  FilterByLambda_2():
    arr 
=  [ 1 , 2 , 3 , 4 , 6 , 7 , 8 ]
    ruleFunc 
=   lambda  x: x % 2   ==  0
    result 
=  filter(ruleFunc,arr)
    
print  result
def  testMap():
    arr 
=  [ 1 , 2 , 3 , 4 , 5 , 6 ]
    result 
=  map( lambda  x:  " the num is %d "   %  x, arr)
    
print  result
def  testMapWithList():
    arr 
=  [[ 1 , 2 , 3 ],[ 4 , 5 , 6 ],[ 7 , 8 , 9 ]]
    result 
=  map( lambda  list: [list[ 1 ],list[0],list[ 2 ]],arr)
    
print  result
    
if   __name__   ==   " __main__ " :
    path 
=  split_fully( " /home/phinecos " )
    
print  path
    NormalFilter()
    FilterByLambda()
    FilterByLambda_2()
    testMap()
    testMapWithList()

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

print ( * result)

 

 

你可能感兴趣的:(每日学习笔记(4))