我创建了一个简单的arbritrary函数,根据随机洗牌列表中的第一个元素打印出一个值(1)。看看下面的代码:我创建一个变量并将其设置为1,然后我创建一个小列表(1,2,3),然后洗牌列表。这个想法是,如果该列表的第一个元素(在shuffle之后)是1或2,则打印'correct'的值,但是如果列表的第一个元素碰巧是3,则将'correct'设置为0,并且然后再次运行该功能。正如你可以从if语句中看到的那样,当'value'设置为0时,我不认为这会被打印出来,因为在打印发生之前函数正在再次运行(chair())。Python:意外的打印值来自一个简单的函数
运行此操作后,我希望找到打印出的5个值为1.问题是,我看到0值也打印出来。这看起来像一个非常简单的功能,我觉得有点愚蠢,因为没有看到为什么会出现这种情况。有任何想法吗?
def chair():
correct = 1
a = [1,2,3]
random.shuffle(a)
if a[0] == 3:
correct = 0
chair() #run function again without printing
print correct
for i in range(5):
chair()
完美。这一小小的变化正是我所需要的。谢谢。 – Steve