每日学习笔记(4)

来源:互联网 发布:java 日历 calendar 编辑:程序博客网 时间:2024/05/16 18:34

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)

 

 

原创粉丝点击