您的位置:首页 > 编程语言 > Python开发

Python练习代码 -- 模块和函数

2014-08-08 10:34 519 查看
myModule1.py

# -*- mode: python; coding: utf-8 -*-

if __name__ == "__main__":
print("myModule1 is __main__")
else:
print("被调用")

count = 1
def func():
global count
count += 1
return count


testx2.py

# -*- mode: python; coding: utf-8 -*-
from test1 import myModule1

if __name__ == "__main__":
print("testx2 is __main__")
else:
print("被调用")

myModule1.count = 3
ret = myModule1.func();
print(ret)

def sum1(x=1, y=2):
print("sum1")
return x+y
#调用函数
apply(sum1,(3,5))

#累计计算 1+2+3+4。。。+9
print( reduce(sum1, range(1,10)) )

def func1(x):
if(x>=0):
return x
#过滤处理, 对返回结果是否为真进行过滤
print( filter(func1, range(-9,10)) )

#对序列每个元素执行相同操作, 并组成列表返回
def power(x): return x**x
print( map(power, range(1,5)) )
def power2(x,y): return x**y
print( map(power2, range(1,5), range(5,1,-1)) )

#zip接受任意个序列,返回一个元组列表
x = [1,2,3]
y = [4,5,6]
z = [7,8,9]
xyz = zip(x,y,z) #[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
print(xyz)

#函数参数可以是元组,列表等
def fun2(args=[]):
x = args[0]
y = args[1]
return x-y
print( fun2([2,1]) )

#传递可变长参数 *
def fun3(* args):
print(args)
fun3(1,2,3)

#引用字典 **
def search(*t, **d):
keys = d.keys()
values = d.values()
print(keys)
print(values)
for arg in t:
for key in keys:
if(arg==key):
print ("find:",d[key])
search("one","two",one="1",two="2",three="2")

#递归
def refunc(n):
i = 1
if(n>1):
i = n
n = n * refunc(n-1)
print("%d!=%d" %(i,n))
return n
refunc(5)

#yield函数 Generator生成器
#yield 保存函数当前的执行状态,将后面的值返回供调用,
#下次这个函数被调用,会恢复函数状态,从yield的下一句开始执行
def func4(n):
for i in range(n):
yield i
#在for循环中输出
for i in func4(3):
print(i)
#使用next输出
r = func4(3)
print(r)   #<generator object func4 at 0x7f91f53af320>
print(r.next())
print(r.next())
print(r.next())
#print(r.next()) #越界抛异常 StopIteration

#yield实例, 历遍目录
import os
def walk(path):
if(os.path.isdir(path)):
for filex in os.listdir(path):
file_path = os.path.join(path, filex)
for sub_file in walk(file_path):
yield sub_file
else:
pass
yield path

for filex in walk("."):
print(filex)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: