2016-11-12 45 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