For循环条件在Python
问题描述:
我被困在这个问题上。我怎样才能创建一个程序,随机地将一个[0,0,0,0,0,0]列表加1。我想继续下去,直到列表中的所有数字都至少大于0.For循环条件在Python
我的代码有三个问题,我不知道它是什么。这是我的代码和列表票数= [0,0,0,0,0,0]:
它的第七次
有时,它拥有超过1开始在后停止打印item
我希望它在列表中仅以1开始,然后从列表中随机地添加1。
所以我希望每个在列表中这将是至少一个大于0
我的代码是
Def get_all_prizes():
For items in votes:
Items = random.radiant(0, 5)
Votes[items] + = 1
If items == 0:
False
Else:
Print(votes)
这是印什么
[0, 0, 0, 0, 1, 0]
[0, 0, 1, 0, 1, 0]
[0, 1, 1, 0, 1, 0]
[0, 1, 2, 0, 1, 0]
[0, 1, 3, 0, 1, 0]
[0, 1, 3, 1, 1, 0]
它只做6次,有时候会像这样开始。我希望它在列表像以前打印的东西只具有1号刚开始
[0, 1, 2, 0, 1, 0]
[0, 1, 3, 0, 1, 0]
[0, 1, 3, 1, 1, 0]
答
如果我正确理解你的问题,你可以使用all
检查每一个元素大于0,并保持与循环while
,直到满足此条件:
import random
n = 6
votes = [0] * n
while not all(votes):
i = random.randrange(0, n)
votes[i] += 1
print(votes)
# [0, 0, 0, 0, 1, 0]
# [1, 0, 0, 0, 1, 0]
# [1, 0, 1, 0, 1, 0]
# [1, 0, 2, 0, 1, 0]
# [1, 0, 2, 0, 1, 1]
# [1, 0, 2, 1, 1, 1]
# [1, 0, 2, 2, 1, 1]
# [1, 0, 3, 2, 1, 1]
# [2, 0, 3, 2, 1, 1]
# [2, 0, 3, 3, 1, 1]
# [2, 0, 3, 4, 1, 1]
# [2, 0, 3, 4, 2, 1]
# [2, 0, 3, 5, 2, 1]
# [2, 0, 3, 6, 2, 1]
# [3, 0, 3, 6, 2, 1]
# [4, 0, 3, 6, 2, 1]
# [4, 0, 3, 6, 3, 1]
# [4, 0, 3, 6, 4, 1]
# [4, 1, 3, 6, 4, 1]
请不要添加图像。请将您的代码直接放入问题中。 –
请将您的代码格式化为代码(使用'{}'按钮),并使用真正的代码和正确装箱的关键字。 – SiHa
您的代码完全不可读。请发布一个适当的mcve(https://*.com/help/mcve) –