2013-04-03 93 views
0

說明:爲什麼我得到'int'對象不是可迭代錯誤?

編寫一個名爲roll_big的函數,它接收一個數字參數。它從1到參數的大小生成隨機數;將數字加在一起。它在1滾動時停止。 1不計數,但其餘數字的總和被返回。

我不明白爲什麼for循環對我的代碼有問題。我需要解決什麼問題?

import random 
def roll_big(x): 
    count = 0 
    while True: 
     for i in random.randrange(1,x): 
      if i == 1: 
       return count 
      else: 
       count += i 
+1

randrange的文檔告訴你什麼? – 2013-04-03 20:00:34

回答

3

randrange不返回序列,它簡單地返回一個數:

import random 

def roll_big(x): 
    count = 0 
    while True: 
     i = random.randrange(1, x) 
     if i == 1: 
      return count 
     else: 
      count += i 

Documentation for randrange.

+0

啊,謝謝你。 – 2013-04-03 20:01:49

0

random.randrange(1,x)返回之間1和x,而不是一個列表中的單個整數。你需要修改你的代碼,如下所示(注意:未經測試):

def roll_big(x): 
    count = 0 
    while True: 
     i = random.randrange(1, x) 
     if i == 1: 
      return count 
     else: 
      count += i 
相關問題