【发布时间】:2020-08-06 19:10:15
【问题描述】:
我有一个关于随机游走的练习题:
到目前为止,我的代码如下所示:
import random
import itertools
p = [0,0]
def random_walk():
yield p
for _ in itertools.count(0,1):
sign = random.randrange(-1, 2,2)
cord = random.randint(0,1)
p[cord] += sign
yield p
但是,当我运行它时,什么也没有发生。我认为它运行太多次太快而无法实际产生任何东西。有没有办法解决这个问题,所以它输出一个像问题文本中的序列?只是为了让您知道,我正在参加 Python 入门课程,重点是科学应用程序,因此我的编程知识一般来说非常有限。
稍后在练习中,我应该使用itertools.islice 来生成有限路径,但我需要首先使用它。任何帮助将不胜感激!
【问题讨论】:
-
您的代码没有调用 random_walk。您还应该返回您的列表的副本,而不是您修改的列表。否则你可能会修改调用者的观点。
标签: python python-3.x function iterator