2013-06-05 143 views
1

我想使用的代碼:使用隨機函數來隨機化計劃任務

import random 
import datetime 
from sched import scheduler 
from time import time, sleep 

s = scheduler(time, sleep) 
random.seed() 

def run_periodically(start, end, interval, func): 
    event_time = start 
    while event_time < end: 
     s.enterabs(event_time, 0, func,()) 
     event_time += interval + random.random(-5, 45) 
    s.run() 

getData()####### 

run_periodically(time()+5, time()+1000000, 10, getData) 

我想獲得的預定時間和或計劃的時間間隔有一定程度的隨機化,目前的代碼返回

typeError: random() takes no arguments (2 given) 

如果任何人都可以告訴我如何解決這個問題或提供替代方法,將不勝感激。

回答

4

類型help(random.random)在終端(或random.random??如果你使用IPython的),你會得到:

random() -> x in the interval [0, 1).

所以也沒有采取任何輸入這是錯誤背後的原因。要生成一定範圍內的隨機數,您可以使用random.randint(鏈接到random.randrange)。

因此,這將是這樣爲你的情況:random.randint(-5,45)

+0

我太慢了:P – pythonista

1

random.random不是你想要的功能。您要使用random.randrangerandom.randint,具體取決於您的版本。

查看http://docs.python.org/2/library/random.html瞭解更多詳情。

+0

隨機_is_一個功能,它只是可能是錯誤的 –

+0

random.random是一個有效的功能:http://docs.python.org/2/ library/random.html#random.random它返回一個介於0和1.0之間的隨機數字。 – karthikr