2014-05-19 23 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