基本上,我正在尝试在Python中使用异步代码。首先,我想我会制作一个斐波那契计算器。 但是我在使用它时遇到了麻烦,这是我的代码
break
我得到的错误是
import asyncio as a
cache = {}
async def fib(n):
if n < 10:
a.sleep(0.001)
else:
if n in cache:
result = cache[n]
else:
result = await fib(n - 2) + await fib(n - 1)
cache[n] = result
return result
async def main():
res = await fib(100)
print(res)
a.run(main())
谢谢。
答案 0 :(得分:1)
您错过了初始化值。它们已预先添加到以下缓存:
import asyncio as a
cache = {0: 0, 1: 1}
async def fib(n):
if n in cache:
result = cache[n]
else:
result = await fib(n - 2) + await fib(n - 1)
cache[n] = result
return result
async def main():
res = await fib(100)
print(res)
a.run(main())