2014-04-07 5 views
0

이것은 내 포아송 프로세스 스크립트입니다. 이 일으키는 문제는 내가 그것을 고칠 수 없었다 오전 7 호선 (a = float(sys.argv[1]))에서 오류 즉sys.argv가 색인 오류를 발생시킵니다.

IndexError: List index out of range.

입니다. 그것을 고치도록 나를 도와주세요.

import random 
import math 
import sys 
import time 

# Expected number of arrivals per unit time. 
a = float(sys.argv[1]) 
# Number of events 
count = int(sys.argv[2]) 

# Function for testing API 
def test_api(): 
    print "Testing API..." 
    # TODO: Make request to the API 

# Make a function iterable, by repeatedly calling it. 
def make_iterable(func, *args): 
    try: 
     while 1: 
      yield func(*args) 
    except: 
     pass 

uni_rand = make_iterable(random.uniform, 0, 1) 

# A generator for inter-arrival times. 
inter_arrival = (-(1./a)*math.log(u) for u in uni_rand) 

# Generate inter-arrival times, then sleep for that long. 
inter_arrival_iter = iter(inter_arrival) 
for i in xrange(count): 
    inter_arrival_seconds = inter_arrival_iter.next() * 3600. 
    print "Sleeping for %f seconds." % inter_arrival_seconds 
    time.sleep(inter_arrival_seconds) 
    test_api() 
+0

스크립트를 실행할 때 실제로 명령 줄 인수를 전달 했습니까? –

+0

은 명령 줄 인수를 제공하지 않는 것처럼 보입니다. – rahul

+0

호스트에서 인수를 전달하는 방법은 무엇입니까? –

답변

2

"수정"하지 않으면 스크립트에 인수를 전달합니다.

./script.py 1.2 7 

당신이 사전에 다음 충분한 인수를 사용하면 길이 (len(sys.argv))을 확인해야 할 경우 선택하십시오.

+0

또는'try : a = float (sys.argv [1]);를 사용하십시오. IndexError 제외 : sys.exit ("Missing argument!"); ValueError : sys.exit ("첫 번째 값은 float이어야합니다!")' – SethMMorton

+0

호스트에서 인수를 전달하는 방법은 무엇입니까? - –

관련 문제