2016-10-08 111 views
0

我正在使用Django,並且我有一個已轉換爲列表的對象的查詢集(unpaid_sales)。我正在執行一個遍歷此列表的過程,並對每個項目進行操作,直到列表爲空,或給定整數(bucket)爲零。Python-While循環直到列表爲空

這是我如何設置它:

while unpaid_sales: 
    while bucket > 0: 
     unpaid_sale = unpaid_sales.pop(0) 
     ...do stuff 

在某些情況下,我收到以下錯誤:

pop from empty list

這有什麼錯我的邏輯是什麼?

+2

使用'or'的同時使用一個。 – YiFei

+0

「桶」何時更改? – jcolemang

+0

我現在明白了,謝謝! –

回答

3

您的最終標準必須制定一點不同:循環,而有項目和bucket是積極的。 or這裏不是正確的操作。

while unpaid_sales and bucket > 0 
    unpaid_sale = unpaid_sales.pop(0) 
    #do stuff 
+0

他們每個人都有自己的條件。 'elif'與'while'循環一起工作嗎? –

+0

不是真的。但在這種情況下,你應該在while循環之後使用正常的if語句 – tynn

+0

明白了。非常感謝! –

3

請勿使用單獨的while循環。具體操作如下:

while unpaid_sales and bucket > 0 : 
    unpaid_sale = unpaid_sales.pop(0) 
    ...do stuff 
2

你應該做一個循環:while bucket>0 and unpaid_sales。在這裏,您在bucket循環中彈出元素,然後只檢查bucket是否爲正數,但您不檢查element_sales中是否仍有元素。