2014-05-19 42 views
0

當我得到一個錯誤,當我嘗試導入任何東西,或嘗試修改numpy的聲明從numpy的進口人氣指數像從numpy的進口*進口多於其他任何東西,或添加任何其他進口聲明。錯誤使用Python中VPython

我也不能讓我的半徑隨機漂浮它說r = random.uniform(0,2)AttributeError:'builtin_function_or_method'對象沒有'uniform'屬性。

這是我的錯誤,當我嘗試修改import語句:

Traceback (most recent call last): 
    line 13, in <module> 
    rate(5) 
TypeError: rate() missing 3 required positional arguments: 'pmt', 'pv', and 'fv' 

代碼:

from visual import * 
from math import cos,sin,pi 

from numpy import arange 


from random import * 

s = sphere(pos=[1,0,0],radius=0.1,color = color.red) 
s0 = sphere(pos=[0,0,0],radius=0.25,color = color.green) 

for i in arange(0,100,0.1): 
    rate(5) 
    theta = randint(0,30) 
    r = randint(-2,2) 
    x = cos(theta) 
    y = sin(theta) 
    s.pos = [x,y,r] 

回答

1

它通常是一個壞主意在腳本中使用from <some_library> import *或程序,因爲那會將的所有內容<some_library>導入當前命名空間。如果<some_library>中的任何名稱已經存在於當前名稱空間中,則它們將被重新定義。這是更好地做,例如,無論是

import numpy as np 

,並使用前綴np訪問numpy命名空間(例如np.arange),或明確只導入正是你在你的腳本需要什麼。例如,從random進口randint

from random import randint 

在你的情況,無論是numpyvisual定義一個名爲rate功能。 (請參閱http://vpython.org/contents/docs/rate.htmlhttp://docs.scipy.org/doc/numpy/reference/generated/numpy.rate.html。)當您收到您報告的錯誤時,您顯然已完成了from numpy import *,因此您的腳本調用了numpy.rate而不是visual.rate

+0

這固定它非常感謝,甚至不知道我可以做到這一點,導入np的np。 – FireFistAce