← 返回星图
· 共 693 字

day3

前几天光顾着敲浅谈梦了喵,学业荒废了赶紧补上

#空间换时间
def a(n):
    if n==1 or n==2:
        return 1
    return a(n-1)+a(n-2)
print(a(40))
# 这样的代码需要进行大量的重复运算,效率很低
# 可以使用记忆化搜索来优化效率
temp = {1:1,2:1}
def a_memo(n):
    if n not in temp:
        temp[n]=a_memo[n-1]+a_memo[n-2]
        return a_memo(n-1)+a_memo(n-2)
    return temp[n]
# 当然,Python中有现成的装饰器可以解决这个问题
from functools import cache
@cache
def a_cache(n):
    if n==1 or n==2:
        return 1
    return a_cache(n-1)+a_cache(n-2)
print(a_cache(40))
if __name__==’__main__’:
    print(a_cache(40))
# __name__是Python中的一个特殊变量,当模块被直接执行时,__name__的值是’__main__’,否则是模块名。
# 只有当模块被直接执行时,才会执行if __name__==’__main__’下的代码。
# 假设有a.py
def hello():
    print(“你好”)
print(“我是 a 文件”)
if __name__ == ‘__main__’:
    print(“我是主程序”)
# 还有b.py
import a
print(“我是 b 文件”)
# 当b.py被直接执行时,会先执行a.py中的代码,然后再执行b.py中的代码。
# 终端会输出:
# 我是 a 文件
# 我是 b 文件
LEAVE A LITTLE LIGHT

星光来信 0

留下一点想法