2012-10-26 66 views
0

我想創建一個全局列表,並在全局列表中保存了一個值(def rand())。全局列表不包含其他功能的值

無論保存的是什麼,我保存的值都不包含在除rand()之外的其他功能中。

我錯過了什麼?

sayi = [] 

def rand(): 

    global sayi 
    initial = 1000 
    for i in range(1000,10000): 
     initial +=1 
     sayi.append(initial) 
    print sayi[43] 


def main(): 

    rand() 
    print len(sayi) # Shows 0 but I have added value at rand funct. with append funct. 
main() 
+1

除了遞歸調用'main()',使其想要永遠旋轉,這似乎對我來說工作得很好。我得到'9000'印 – jdi

+1

也適用於我(除了導致堆棧限制崩潰的遞歸) – Lethargy

+2

此外,你甚至不需要說'global sayi',因爲你沒有替換對象本身。您只能訪問其屬性並修改其值。 – jdi

回答

0

我打算假設你是python的新手。 INDENTATION MATTERS。不要試圖做到卑鄙,但我注意到,很多人都出去旅行。這是你修改後的代碼。

sayi = [] 

def rand(): 

    global sayi 
    initial = 1000 
    for i in range(1000,10000): 
     initial +=1 
     sayi.append(initial) 
    print sayi[43] 


def main(): 

    rand() 
    print len(sayi) # Shows 0 but I have added value at rand funct. with append funct. 

main() 

你有一切工作,你的縮進只是一點點關閉。

+0

你只是建議OP收縮'main()'嗎?這不會導致以任何方式打印錯誤的值。它只是導致一個遞歸循環。你仍然可以得到這些值。 – jdi

+0

@jdi,不,我並不是說缺乏縮進導致他的列表長度爲零。 – John

+0

好的。我只是想澄清,這實際上不是OP問題的答案。雖然這是很好的信息,但它只是一個「附註」。 – jdi