2016-11-12 77 views
-1

我在宾果游戏工作里面我是用75号的数组。滚动数字后,代码将删除它。当数组中没有数字时,我想停止滚动数字。如何在python中的数组用完时停止循环?

到目前为止,我有这样的:

import random 
numbers=[] 
number=1 
for i in range (0,75): 
    numbers.append(number) 
    number=number+1 

我如何让代码停止滚动一个号码时数组的数字用尽?

+2

您可能要解释你的问题更好。在你的代码中,我没有看到可能用完数字的数组(或列表)。 – Matthias

+0

“如果数字:”会为你工作,空单将表现为假 – Serjik

+0

首先我希望你用随机数字填满你的阵列。目前你还没有这样做。然后用范围内的随机索引(len(数组))挑选一个数字(不是宾果游戏的工作原理?该列表的删除方法将其删除。您可以使用简单的for循环,因为您事先知道您需要删除多少次。但这真的是这个任务吗?一个人宾果游戏有点沉闷,因为你总是赢。 –

回答

1

可以使用random功能混淆的结果。 然后,您可以使用创建一个序列,然后允许您按顺序选择它们。

1

这是你所需要的:

import random 

current_list = list(range(0,75)) 

while current_list: 
    value = random.choice(current_list) 
    print("Current Value is {}".format(value)) 
    current_list.remove(value) 
+1

initial_list倒是过得更好被称为current_list ...... –

+0

或者*号*,因为这是什么OP调用它。 – tom

+0

非常符合逻辑...修正。 –

3

您可以使用random洗牌的元素,然后选择它们依次是:

import random 
numbers = list(range(1,76)) 
random.shuffle(numbers) 

while len(numbers) > 0: 
    number = numbers.pop() 
    print(number) 
+1

'而numbers'应就位,同时LEN的'足够(数字)> 0'。 –

+0

而且,你实际上不是按顺序挑选它们,而是按相反顺序选择。 (只是为了澄清) –

+1

@AhsanulHaque:这是如何相反的顺序?没有顺序,因为'numbers'列表是_random_开始的,所以数字是从前面还是后面弹出都没有区别。此方法比使用list.remove()从列表中移除特定值更有效。 – mhawke