鱼C论坛

 找回密码
 立即注册
查看: 2210|回复: 0

[学习笔记] 2022-09-14 学习Python-Day12

[复制链接]
发表于 2022-9-14 16:52:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
中秋过后,学习归来!函数的学习有点玄乎玄乎的了P42-P49
######################################P46
import time


def func():
    x=520
    print(x)
func()

def funa():
    x=880
    def funb():
        x=550
        print(x)
    funb()
funa()

def funa():
    x=880
    def funb():
        print(x)
    return  funb
funa()()
fun=funa()
fun()
def power(exp):
    def exp_of(base):
        return base ** exp
    return exp_of
square = power(2)
print(square(2))
cube =  power(3)
print(cube(3))

def outer():
    x=0
    y=0
    def inner(x1,y1):
        nonlocal x,y
        x=x1+x1
        y=y1+y1
        print(f'现在,x={x},y={y}')
    return inner
move=outer()
move(1,2)
######################################P47
def myfun():
    print('调用函数')
def report(func):
    print('开始')
    func()
    print('结束')
report(myfun)

def time_master(func):
    print('开始运行')
    start =time.time()
    func()
    end = time.time()
    time_=(end-start)
    print('结束运行')
    print(f'总共运行:{time_:.2f}秒')
def myfunc():
    time.sleep(2)
    print('Hello')
time_master(myfunc)
###############################
def time_master(func):
    def call_func():
        print('开始运行')
        start = time.time()
        func()
        end = time.time()
        time_ = (end - start)
        print('结束运行')
        print(f'总共运行:{time_:.2f}秒')
    return call_func
@time_master
def myfunc():
    time.sleep(2)
    print('Hello')
myfunc()
#######################################
def call_func(func):
    print('开始运行')
    start = time.time()
    func()
    end = time.time()
    time_ = (end - start)
    print('结束运行')
    print(f'总共运行:{time_:.2f}秒')
    return call_func

def myfunc():
    time.sleep(2)
    print('Hello')
aa=myfunc()
#######################################
def logger(msg):
    def time_master(func):
        def call_func():
            print('开始运行')
            start = time.time()
            func()
            end = time.time()
            time_ = (end - start)
            print('结束运行')
            print(f'总共运行:{time_:.2f}秒')
        return call_func
    return time_master
@logger(msg='a')
def funa():
    time.sleep(1)
    print('正在使用funa')
@logger(msg='b')
def funb():
    time.sleep(1)
    print('正在使用funb')
funa()
funb()
#######################################P47
def logger(msg):
    def time_master(func):
        def call_func():
            print('开始运行')
            start = time.time()
            func()
            end = time.time()
            time_ = (end - start)
            print('结束运行')
            print(f'总共运行:{time_:.2f}秒')
        return call_func
    return time_master

def funa():
    time.sleep(1)
    print('正在使用funa')

def funb():
    time.sleep(1)
    print('正在使用funb')
funaa=logger(msg='a')(funa)
funbb=logger(msg='b')(funb)
funa()
funb()
#######################################P48
def squarex(x):
    return x*x
x1=square(3)
print(x1)
squarey= lambda y:y*y
print(squarey(5))
y=[lambda x:x*x,2,3]
print(y[0](y[1]))
print(y[0](y[2]))
mapp=map(lambda x:ord(x)+10,'FishC')
print(list(mapp))
def boring(x):
    return ord(x)+10
mappp=list(map(boring,'FishC'))
print(mappp)
li=list(filter(lambda x:x%2, range(10)))
print(li)
#######################################P49-生成器
def counter():
    i=0
    while i<=5:
        yield i
        print(i)
        i=i+1
c=counter()
print(c)
def fib():
    back1=0
    back2=1
    while True:
        yield back1
        back1,back2=back2,back1+back2
        # back1=back2
        # back2=back1+back2

f=fib()
print(next(f))
print(next(f))
print(next(f))
print(next(f))
print(next(f))
print(next(f))
t=(i ** 2 for i in range(10))
print(t)
在生成器的学习中,斐波那契数列, back1,back2=back2,back1+back2如果写成
back1=back2
back2=back1+back2
结果居然不一样,很是神奇!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-26 02:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表