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

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)














评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值